Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error PHP + JS

Estas en el tema de Error PHP + JS en el foro de PHP en Foros del Web. Hola buenas. Mi problema es que cuando realizo un registro en mi página web, saco un confirm en medio de la ejecución del código php ...
  #1 (permalink)  
Antiguo 01/01/2014, 07:50
 
Fecha de Ingreso: julio-2012
Mensajes: 18
Antigüedad: 11 años, 9 meses
Puntos: 0
Error PHP + JS

Hola buenas.
Mi problema es que cuando realizo un registro en mi página web, saco un confirm en medio de la ejecución del código php y dependiendo de la respuesta "va por un camino o por otro".

Este es el código:
Código PHP:
Ver original
  1. if("alguna condición") {
  2. //no sigue el registro
  3. }
  4. else
  5. {
  6. ?>
Código Javascript:
Ver original
  1. <script type='text/javascript'>
  2. var r = confirm("Pregunta");
  3. var x = "none";
  4. if (r == true)
  5.   {  
  6.   x = "si";
  7.   }
  8. else
  9.   {
  10.   x = "no";
  11.   }
  12. </script>
Código PHP:
Ver original
  1. <?php
  2.  
  3. $x = "<script type='text/javascript'> document.write(x); </script>";
  4.  
  5. echo $x; //este echo si que va bien, imprimiendo si o no dependiendo de la elección
  6.  
  7. if($x == "si") { //aquí ya nunca entra
  8.  
  9. mysqli_query($conectar, "INSERT INTO ...


Muchas gracias.
  #2 (permalink)  
Antiguo 01/01/2014, 08:07
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: Error PHP + JS

Cita:
Iniciado por arturvv Ver Mensaje
<?php

$x = "<script type='text/javascript'> document.write(x); </script>";

echo $x; //este echo si que va bien, imprimiendo si o no dependiendo de la elección

if($x == "si") { //aquí ya nunca entra

mysqli_query($conectar, "INSERT INTO ...

[/HIGHLIGHT]


Muchas gracias.
De verdad no sé si te he entendido, si escribe el si, pues no veo problema ya que esto funciona:
Código PHP:
<?php
$x
='si';
echo 
$x//este echo si que va bien, imprimiendo si o no dependiendo de la elección
 
if($x == "si") { //aquí ya nunca entra
echo "test";
}
?>
Prueba con guardar la $x en otra variable asi:

Código PHP:
<?php
$x
='si';
echo 
$x//este echo si que va bien, imprimiendo si o no dependiendo de la elección
$z=$x;
if(
$z == "si") { //aquí ya nunca entra
echo "test";
}
?>
  #3 (permalink)  
Antiguo 01/01/2014, 08:24
 
Fecha de Ingreso: julio-2012
Mensajes: 18
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Error PHP + JS

Pasa lo mismo.

También he comprobado que con un alert de JS no muestra la variable $x

<script type='text/javascript'>
var r = confirm("Pregunta");
var x = "none";
if (r == true)
{
x = "si";
}
else
{
x = "no";
}
</script>
<?php
$x = "<script type='text/javascript'> document.write(x); </script>";
echo "<script type='text/javascript'> alert('";
echo $x;
echo "')</script>";
//no se muestra nada, ni si quiera un alert vacio. el echo $x sin el alert si imprime bien.

Creo que el problema va relacionado con que la variable aun no esta definida y falta recargar la página.
  #4 (permalink)  
Antiguo 01/01/2014, 10:07
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Error PHP + JS

Código PHP:
Ver original
  1. <?php
  2. $x = "<script type='text/javascript'> document.write(x); </script>";
  3. echo "<script type='text/javascript'> alert('";
  4. echo $x;
  5. echo "')</script>";

Resultado de ese codigo:
Código HTML:
Ver original
  1. <script type='text/javascript'> alert('<script type='text/javascript'> document.write(x);</script>')</script>
Lo cual supongo que te estará dando error de sintaxis javascript, cosa que puedes ver en la consola de tu navegador.
  #5 (permalink)  
Antiguo 01/01/2014, 10:18
 
Fecha de Ingreso: julio-2012
Mensajes: 18
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Error PHP + JS

Pero $x toma el valor que le he definido y lo guarda para imprimirlo luego en el alert. No hace no lo que has dicho (creo).
  #6 (permalink)  
Antiguo 01/01/2014, 10:21
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Error PHP + JS

Cita:
Iniciado por arturvv Ver Mensaje
Pero $x toma el valor que le he definido y lo guarda para imprimirlo luego en el alert. No hace no lo que has dicho (creo).
No creas.Esto es muy sencillo.Dale a ver codigo fuente de tu pagina.
  #7 (permalink)  
Antiguo 01/01/2014, 13:04
 
Fecha de Ingreso: julio-2012
Mensajes: 18
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Error PHP + JS

Cierto. Hay un error de sintaxis. Pero ahí no esta el problema, nos hemos desviado. Tan solo hacia eso para comprobar si estaba definida la variable $x.
  #8 (permalink)  
Antiguo 01/01/2014, 14:17
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Error PHP + JS

Desviado? No.Te explica eso por qué no funciona tu código?..Estás confundiendo lo que ocurre por el lado del servidor, con lo que ocurre por el lado del cliente.No tienes claro dónde ocurre qué.
Código PHP:
Ver original
  1. $x = "<script type='text/javascript'> document.write(x); </script>";
  2.  
  3. echo $x; //este echo si que va bien, imprimiendo si o no dependiendo de la elección
  4.  
  5. if($x == "si") { //aquí ya nunca entra
Por supuesto que nunca va a entrar. $x no vale "si".Vale "<script type...".
El "echo" no ha cambiado el valor de "$x".
El "echo" va a provocar que, cuando se termine la petición actual (después de que todo el PHP se haya ejecutado), se envíe al navegador una página html que contiene "<script type=.....".Cuando el navegador interprete el tag <script>, ejecutará "document.write(x)", y mostrará "si", que es el valor de la variable javascript "x".

Tú estás creyendo que, porque el documento generado por PHP, va a hacer que aparezca "si" en el navegador, ese valor "si" se introduce de "alguna forma" en la variable $x *antes* de que el documento siquiera se haya generado.
  #9 (permalink)  
Antiguo 01/01/2014, 15:36
 
Fecha de Ingreso: julio-2012
Mensajes: 18
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Error PHP + JS

Vale vale ya lo entiendo. entonces $x no va a valer "si" o "no", vale el código js.

y hay alguna forma de hacer lo que pretendo? ya intenté enviar el "si" o "no" por GET pero como era un form de registro tenía que volver a enviar todos los datos.

muchas gracias
  #10 (permalink)  
Antiguo 01/01/2014, 15:55
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Error PHP + JS

Cita:
Iniciado por arturvv Ver Mensaje
Vale vale ya lo entiendo. entonces $x no va a valer "si" o "no", vale el código js.

y hay alguna forma de hacer lo que pretendo? ya intenté enviar el "si" o "no" por GET pero como era un form de registro tenía que volver a enviar todos los datos.

muchas gracias
Mete la respuesta del usuario ("si" o "no") dentro de un input hidden del formulario, y lo recibes por POST.
Lo mismo daría que modificaras el action del formulario para que fuera xxx.php?x=si , y lo recibes por GET.
  #11 (permalink)  
Antiguo 02/01/2014, 03:17
 
Fecha de Ingreso: julio-2012
Mensajes: 18
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Error PHP + JS

Pero con lo del input oculto no pasaría lo mismo?

Después de haberse ejecutado todo el código PHP, JS cambiaría el valor del input. Cuando le de al submit del form el valor del input será el por defecto.

Corrígeme si me equivoco.

Con la idea de pasar la x por GET, cualquier usuario podría escribirlo en la barra de direcciones y tener "acceso" sin haber contestado realmente a la pregunta.

Gracias por la ayuda.
  #12 (permalink)  
Antiguo 02/01/2014, 03:49
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Error PHP + JS

Cita:
Iniciado por arturvv Ver Mensaje
Después de haberse ejecutado todo el código PHP, JS cambiaría el valor del input. Cuando le de al submit del form el valor del input será el por defecto.
El valor del input no se establece cuando se genera la pagina por PHP (echo) o JS (document.write).Se establece en el callback al que JS llama cuando el usuario responde "si" o "no".

Cita:
Iniciado por arturvv Ver Mensaje
Con la idea de pasar la x por GET, cualquier usuario podría escribirlo en la barra de direcciones y tener "acceso" sin haber contestado realmente a la pregunta.
Gracias por la ayuda.
Cualquier usuario que quiera hacer eso, puede hacerlo por POST sin ningún problema.
  #13 (permalink)  
Antiguo 02/01/2014, 04:04
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Error PHP + JS

Cita:
Iniciado por arturvv Ver Mensaje
Después de haberse ejecutado todo el código PHP, JS cambiaría el valor del input. Cuando le de al submit del form el valor del input será el por defecto.
El valor del input no se establece cuando se genera la pagina por PHP (echo) o JS (document.write).Se establece en el callback al que JS llama cuando el usuario responde "si" o "no".

Cita:
Iniciado por arturvv Ver Mensaje
Con la idea de pasar la x por GET, cualquier usuario podría escribirlo en la barra de direcciones y tener "acceso" sin haber contestado realmente a la pregunta.
Gracias por la ayuda.
Cualquier usuario que quiera hacer eso, puede hacerlo por POST sin ningún problema.
  #14 (permalink)  
Antiguo 02/01/2014, 09:25
 
Fecha de Ingreso: julio-2012
Mensajes: 18
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Error PHP + JS

Muchas gracias. Solucionado.

Etiquetas: javascript+php, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:18.