Sé que hay otras preguntas como esta aquí, pero he leído las respuestas y todavía no encuentro una solución a mi problema.
Todos estos scripts están en la misma página, search-results .
Muestra los resultados en tablas de datos y permite al usuario seleccionar registros para guardar en una lista, que luego puede imprimir. Los ID de los registros seleccionados se almacenan en una cookie de records . Puedo ver que esto funciona.
Hay un enlace en la parte inferior de la página que activa esta función JS:
function resultsPage(){ window.location = "/search-results/?printqueue=true"; }Como puede ver, esta es la misma página, pero con un parámetro diferente. Esto le dice a la página que muestre sus resultados guardados.
En la carga inicial con ?printqueue=true , PHP no puede leer la cookie, aunque la página se haya actualizado. Tengo que actualizar (o hacer clic en el enlace) OTRA VEZ antes de que PHP recoja la cookie. ¿Por qué?
Obtengo los datos de las cookies de esta manera:
if( $_GET['printqueue'] == 'true' && $_COOKIE['records'] !== 'undefined' ) { $posts_to_show = explode(',',$_COOKIE['records']); }Si eso es solo por el orden de las operaciones, está bien, entonces no hay nada que hacer al respecto. Pero, ¿alguna forma limpia de "actualizar dos veces" la página sin agregar un parámetro adicional y actualizar nuevamente si está presente? Realmente odiaría hacer eso...
Creo que se debe a que $_COOKIE['records'] aún no está configurado.
Probar:
if( $_GET['printqueue'] == 'true' && isset($_COOKIE['records']) ) { // your code }