Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/02/2015, 05:11
Begotten
 
Fecha de Ingreso: enero-2015
Ubicación: Valparaiso
Mensajes: 88
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Dar condicion a funcion php/javascript

Cita:
Iniciado por Eleazan Ver Mensaje
El problema es el concepto que tienes de php, html, js y la relacion cliente-servidor.

Voy a intentar explicarte pq te pasa eso...

PHP se ejecuta en el servidor
HTML/JS se "ejecuta" en el cliente

Cuando haces una peticion al servidor (ej: index.php) sucede lo siguiente:
· El servidor recibe la petición, con sus headers
· El servidor empieza a procesar la petición (el código php) hasta que haya una salida
· Cuando haya una salida, envía los headers de la salida al cliente
· El servidor termina de procesar la petición, y envia toda la salida al cliente
· El cliente recibe la página, y la muestra.


Funciones de php no funcionan en js. El servidor primero prepara "toda la página" (no es cierto del todo, pero es para que lo entiendas) y después la envia. Así pues, el unset te lo ejecuta mientrar prepara la página (ya que es una instrucción en php).

Si quieres cerrar sesión, deberías hacerlo o bien por un enlace (que te lleve a un php que cierre la sesión) o bien por ajax... recomiendo lo primero ;)

No se si te queda claro, pero de php a js sólo puedes pasar el valor de las variables (en el momento de procesar la página, claro). JS jamás ejecutará código php por si solo ;)

Saludos
Tengo claro las relaciones y diferencias entre php y js pero quería saber si es que era posible realizar una función mezclando a ambos. De hecho tengo una función "al revés" que si funciona.
Código PHP:
Ver original
  1. if (isset($_SESSION['ccliente'])){
  2.     echo "<script type='text/javascript'>";
  3.     echo "  mostrarEditFormulario(".$_SESSION['ccliente'].");";
  4.     echo "</script>";
  5. }
El caso es que modifique la función para que me envié a otro enlace que realiza el cierre de session así que ahora funciona pero me recarga toda la pagina para hacer esto ¿se puede hacer de forma que no recargue pagina cada vez que hago esto?
Función:
Código Javascript:
Ver original
  1. function cerrarSession(){
  2.             window.location="cerrarSessionCliente1.php";
  3.         }
Cerrar Session:
Código PHP:
Ver original
  1. if (isset($_SESSION['ccliente'])){
  2.     unset($_SESSION['ccliente']);
  3. }
  4. header("Location: cliente.php");