2010-12-28 17 views
9

¿Por qué no funciona?Echo PHP dentro de Javascript?

<?php 

mysqli_select_db($connect,"dev"); 
$response = "Select response from revbut where session='$u'"; 
$rquery = mysqli_query($connect,$response); 

$responseanswer = mysqli_fetch_array($rquery); 
$re = $responseanswer['response']; 
?> 

<script type="text/javascript"> 
<?php echo $re; ?> 
</script> 

$re dentro JavaScript no está recibiendo hizo eco. Pero si lo coloco dentro de la función PHP anterior, se hace eco.

EDITAR - PERO ENTONCES ¿POR QUÉ NO FUNCIONA?

if(<?php echo $re; ?>){ 
    document.getElementById('hide').style.display = "none"; 
} 

si I PLACE la función ocultar fuera del if - está funcionando.

+1

cuál es la función php? no hay función en este código. – StasM

Respuesta

15

Se ha repetido, pero no verá nada en su página ya que el texto se escribirá dentro de la etiqueta Javascript que no se muestra en el navegador. Mire la fuente de su página para verificar que el texto realmente esté allí.

EDITAR

Trate

if(<?php echo json_encode($re); ?>){ 
    document.getElementById('hide').style.display = "none"; 
} 

Esto asegurará que la cadena de PHP se puede convertir en el tipo apropiado Javascript - en el caso de las cadenas que va a asegurarse de que la cadena está encerrada en " y se escapó correctamente

nuevo EDIT

Al hacer lo siguiente

<script type="text/javascript"> 
if(<?php echo $re; ?>){ 
    document.getElementById('hide').style.display = "none"; } 
</script> 

Esto es lo que se escribe en la página HTML (que es entonces interpretado por el navegador)

<script type="text/javascript"> 
if(whatever is in the $re vairable){ 
    document.getElementById('hide').style.display = "none"; } 
</script> 

Pero esto ni siquiera es válido Javascript. Lo que queremos es

<script type="text/javascript"> 
if("whatever is in the $re vairable"){ 
    document.getElementById('hide').style.display = "none"; } 
</script> 

Nota del " que asegura que todo el asunto es válida Javascript y que el contenido de $re se interpreta como una cadena Javascript por el motor de Javascript del navegador. La llamada al json_encode() hace exactamente esto: transforma las variables PHP en las variables JavaScript adecuadas.

+0

Oh ..... sí ... gracias. – sarthak

+0

UNA PALABRA - GENIUS ... GRACIAS ..... FUNCIONA ... NO PUEDEN EXPLICARME POR QUÉ FUNCIONA, SI ES POSIBLE. – sarthak

+0

Whoa .... la mejor explicación de la historia. muchas gracias ... apreciado mucho. – sarthak

0

hacer vista de origen que se hace eco de probarlo y confirmar

<script type="text/javascript"> 
alert('<?=$re; ?>'); 
</script> 
5

intente esto:

<script type="text/javascript"> 
alert('<?php echo $re; ?>'); 
</script> 
+0

Este es un buen recordatorio, funciona para hacer eco de su variable php –

1

En primer lugar, no se puede asumir que todas las operaciones relacionadas DB siempre completa sucesfully y siempre devolver datos . Abra el manual de PHP, revise todas sus llamadas a la función mysqli_ * y agregue una prueba adecuada para detectar si devuelven un código de error o no.

En segundo lugar, PHP y JavaScript no se ejecutan al mismo tiempo. Después de que PHP finaliza, todo lo que obtiene es texto sin formato que se envía al navegador. Si ese texto pasa a ser código JavaScript, se ejecutará. Y no tiene que adivinar: el código JavaScript está ahí y puede usar el menú Ver fuente de su navegador para inspeccionarlo.