Foros del Web » Programando para Internet » Javascript »

Javascript imprime variables php con valores que NO corresponden

Estas en el tema de Javascript imprime variables php con valores que NO corresponden en el foro de Javascript en Foros del Web. Código: <?php $sqlPacientes = "SELECT FNACIMIENTO FROM PACIENTES"; $consulta1 = mysql_query ($sqlPacientes, $conexion); $registro = mysql_fetch_array ($consulta1); $nacimiento = $registro['FNACIMIENTO']; echo $nacimiento; echo "<script>alert($nacimiento);</script>"; ?> ...
  #1 (permalink)  
Antiguo 13/12/2011, 08:11
Avatar de felgueta  
Fecha de Ingreso: diciembre-2011
Mensajes: 40
Antigüedad: 12 años, 4 meses
Puntos: 0
Javascript imprime variables php con valores que NO corresponden

Código:
<?php
$sqlPacientes = "SELECT FNACIMIENTO FROM PACIENTES";
$consulta1 = mysql_query ($sqlPacientes, $conexion);
$registro = mysql_fetch_array ($consulta1);
$nacimiento = $registro['FNACIMIENTO'];
echo $nacimiento;
echo "<script>alert($nacimiento);</script>";
?>

Eso es amigos, al tratar de mostrar por pantalla una variable de php con javascript me muestra un valor totalmente distinto :$ ????

Ejemplo:

echo $nacimiento; --> 1985-03-21
echo "<script>alert($nacimiento);</script>"; --> 61

PLOP!! Quien me puede ayudar..

(la variable conexion no la puse, pero esta bien establecida a la bd)

Gracias
  #2 (permalink)  
Antiguo 13/12/2011, 08:43
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Javascript imprime variables php con valores que NO corresponden

buenas,
revisa el código fuente que esta generando php. cuando tengas problema en el lado cliente, primero revisa el código fuente que recibe el navegador, no lo que tienes en php.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 13/12/2011, 11:53
Avatar de felgueta  
Fecha de Ingreso: diciembre-2011
Mensajes: 40
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Javascript imprime variables php con valores que NO corresponden

definitivamente no se que ocurre, el codigo que puse arriba es el correcto y sigue mostrando datos que nose de donde vienen... ¿Otra idea?
  #4 (permalink)  
Antiguo 13/12/2011, 12:20
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Javascript imprime variables php con valores que NO corresponden

creo que no comprendiste. carga la url en el navegador. desde el navegador, busca ver el código fuente html (view source). una vez lo tengas, localiza el código fuente que te esta dando problema. entonces, analiza la parte generada por php. o sea, el contenido que imprimio. si por ejemplo el resultado final es
Código:
<script>alert(1985-03-21)</script>
entonces es más que obvio que javascript lo que ve es una operación aritmética: restar. si tu intención era mostrarlo tal cual, entonces debes crear un string válido para javascript. o sea, dado la forma que tienes el código php, desde php debes imprimir comillas para que javascript lo vea como un string.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 13/12/2011, 12:30
 
Fecha de Ingreso: octubre-2010
Mensajes: 43
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Javascript imprime variables php con valores que NO corresponden

concuerdo con el amigo...

intenta poniendo el valor en el alert entre comillas
echo "<script>alert('$nacimiento');</script>";

pon $nacimiento entre comillas simples '$nacimiento' saludos.....
  #6 (permalink)  
Antiguo 13/12/2011, 12:35
Avatar de felgueta  
Fecha de Ingreso: diciembre-2011
Mensajes: 40
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Javascript imprime variables php con valores que NO corresponden

Gracias ZeroKilled, lo que hice fue añadir con php una comilla al inicio y otra al final y al hacer el alert ya me muestar el valor que corresponde.

Código:
$nacchar = " ' "  . $nacimiento . " ' ";
Pero sigo con otro problema, es que al tratar de pasarlo como parametro a una funcion de javascript me marca un error de sintaxis.

ej.

echo "<a href='#' onClick='mandarDatos($nacchar);'>Seleccionar</a>"

Como gestiono los parametros tipo String por JavaScript es el problema??

Gracias ZeroKilled desde ya.
  #7 (permalink)  
Antiguo 13/12/2011, 13:02
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Javascript imprime variables php con valores que NO corresponden

sigue siendo el mismo proceso. recuerda que siempre debes generar una sintaxis correcta. y para analizarlo, verifica siempre el código fuente que recibe el navegador. todo depende el tipo de dato que tu quieras que javascript reciba.
Código:
<?php
$param = '0';
echo "<element event='handler($param)'>content</element>";
?>
# el navegador lee;
<element event='handler(0)'>content</element>
en ese ejemplo no surge problema. aunque la variable en php es un string, javascript lo ve como numérico. si tu quieres que javascript lo vea como string, entonces siempre debes darle el contenido correcto. tal como el caso anterior, imprimes comillas en ambos lados.

el otro caso común es cuando debes pasarle un string a javascript pero hay conflicto entre las comillas en php. por ejemplo.
Código:
<?php
$param = 'string';
# notese que se utiliza comilla simples para no crear conflicto con las comillas dobles de php;
echo "<element event='handler('$param');'>content</element>";
?>
# el navegador lee;
<element event='handler('string');'>content</element>
¿qué sucedio ahora? que el navegador no puede interpretar el atributo event porque hay conflicto de comillas. de hecho, lo que el navegador ve como valor para el atributo es lo marcado en negrita. por tanto, las comillas para el atributo de handler debes cambiarlo a otro que no sea el mismo utilizado para delimitar el valor del atributo handler. o sea, comilla dobles.

Código:
<?php
$param = 'string';
echo "<element event='handler("$param");'>content</element>";
# error de sintaxis en php
?>
aquí el navegador no ve nada porque ahora hay conflicto de comillas en php. lo marcado en negrita queda fuera del string de php, y por tanto la sintaxis no es correcta. la solución más obvia, es neutralizar (escapar) las comillas dobles para que php las considere de forma literal.

Código:
<?php
$param = 'string';
echo "<element event='handler(\"$param\");'>content</element>";
?>
# el navegador lee
<element event='handler("string");'>content</element>
# php y html felices!
como verás, el problema realmente esta en como manejas php, y estoy seguro que nada tiene que ver con javascript.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 13/12/2011 a las 13:13
  #8 (permalink)  
Antiguo 13/12/2011, 13:18
Avatar de felgueta  
Fecha de Ingreso: diciembre-2011
Mensajes: 40
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Javascript imprime variables php con valores que NO corresponden

Amigaso zerokilled, es usted un genio, una vez mas Gracias. Y disculpe si le pido tanta ayuda, pero estoy desarrollando algo critico y con fecha limites.

Etiquetas: imprime, php, variables
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 16:20.