Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Cargar un valor a una variable $_SESSION (PHP) (https://www.clubdelphi.com/foros/showthread.php?t=80936)

juanpy 26-09-2012 20:43:33

Cargar un valor a una variable $_SESSION (PHP)
 
Estimados,

Necesito desde un confirm cargarle, dependiendo de la seleccion, el resultado elejido a una variable $_SESSION.

Código:

    //begin js
        WinInvoice = window.open ('invoice.php');
        if(WinInvoice)
            "<?=$_SESSION['variable']="SI";?>";
            return false;
        else
            alert('Your browser disable');
          close; 
        //end
<?php

¿Alguien me puede orientar al respecto?.

Gracias

movorack 26-09-2012 22:06:03

Abriste otro post con la misma duda...

Hola... solo recordarte y ya lo debes saber que Javascript funciona del lado del cliente y no interactua con el PHP. A menos que uses una llamada asincrona de un script php desde el javascript, pero el php de la página cargada en el navegador se mantendría sin ejecutarse hasta realizar un llamado al servidor en el caso de los formularios POST o GET.

Con lo de tu duda; Aquí no tengo un editor de PHP ni ejemplos. Y creo que estás usando Delphi for PHP (no das muchas luces) y la verdad nunca lo he usado.

Pero la cosa como la entiendo es así mas o menos.

En el caso de que requieras de un formulario:

- En el formulario colocas un campo oculto que albergará el valor resultante de tu validación del confirm en javascript.
- La rutina que muestre el confirm y realice la validación del mismo, debe escribir en este campo oculto. Podrias darle un ID al campo oculto y llamarlo con GetElementByID o recorriendo document.forms
- Con el campo albergando ya el valor resultante, puedes enviar el formulario para que haga el llamado al servidor.
- Al procesar en el servidor, dentro de PHP ya debe venir la variable con el valor de tu validación. Junto con los demás valores del formulario.

Si no requieres de un formulario:

- Debes crear una función que despliegue y valide el valor del confirm.
- Una vez realizada esta validación puedes hacer un llamado con ajax de un script que pueda manejar la tarea que necesitas.
- Mientras tanto manejar visualmente algun tipo de mensaje que se está procesando.

Nuevamente te digo... estoy sin editor y sin ejemplos. Pero de manera general esto es lo que yo haría (aparte de no usar Delphi for PHP... eso es otro tema).

Edito: Ya te unificaron el post

luisgutierrezb 26-09-2012 22:11:29

recuerda que el php se ejecuta en el servidor y el javascript en el navegador, asi que cuando estableces un valor a la variable de sesión, eso se hace en el servidor, por lo que el valor de la variable no seria algo por una condición de usuario

juanpy 26-09-2012 23:08:39

Si estoy usando RADPHP XE2
 
Estimado,

Tengo super claro las capaz en que se mueven ambos lenguajes, y le agardezco lo didactico de su explicacion.

Para el caso es que yo tengo un boton y un set de eventos php y javascript para desarrollar. Si yo asigno al evento "onclck" una rutina javascript solo ejecutaria esta y no la php (o viceversa).

Al momento de pinchar "SI" al confirm:

Código:

if(confirm("¿Desea grabar los datos de la facturacion?"))
Puedo crear una cookie:
Código:

document.cookie ='variable=si; expires=Thu, 2 Aug 2021 20:47:11 UTC; path=/';
O asignarle un valor a un campo oculto:
Código:

findObj('HiddenField6').value ="SI";
¿Pero en que evento analizo el valor resultado?

Abro la pagina con la factura PDF.
Cita:

WinFactura = window.open ('factura.php');
Y ahi muere el proceso.

Las variables $_SESSION, una vez inicializadas, prevalecen por todas las paginas que cargo y descargo, y por eso trate de asignarle un valor desde javascript, para usarla una vez descargara la pagina factura.php:
Cita:

<?=$_SESSION['variable']="SI";?>
Trate probando un boton (desabilitado al principio) que ejecutara el procedimiento PHP, pero
Cita:

document.getElementById('Button1').disabled=false;
Desabilita el proceso.

La idea es que al momento de pinchar el boton <Imprime Factura>, aparezca una confirmacion de update de datos, y de ser "SI" la respuesta, despues de cerrar la pagina factura.php, se actualizara inmediatamente la tabla MySql.

Bueno, gracias por su respuesta y espero me pueda seguir ayudando.

LEONARDO19712 12-10-2012 04:50:11

amigo yo creo que como dicen se puede guardar el valor en un campo oculto hiddefield, y despues cuando llamas a factura.php desde un window.open, creo que estas llamando a un archivo php aparte, pues crealo como formulario simplemente y en el evento oncreate pones algo como $_SESSION["numero"]=$this->hidenfield->value; de esta forma recoges primero la variable de session para poderla usar una vez se ejecute el script, espero ser claro


La franja horaria es GMT +2. Ahora son las 10:26:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi