2010-12-28 13 views
9

Dlaczego to nie działa?Echo PHP w 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 Wewnątrz JavaScript nie jest odbijany. Ale jeśli umieściłbym go w powyższej funkcji PHP, otrzymuję echo.

EDYCJA - ALE DLACZEGO TO NIE DZIAŁA?

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

jeśli I MIEJSCE funkcję ukrywania poza if - to działa.

+1

której funkcji php? w tym kodzie nie ma funkcji. – StasM

Odpowiedz

15

To echo, ale na stronie nic nie zobaczysz, ponieważ tekst zostanie zapisany w znaczniku Javascript, który nie jest wyświetlany w przeglądarce. Sprawdź źródło swojej strony, aby upewnić się, że tekst rzeczywiście istnieje.

EDIT

Spróbuj

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

Zapewni to, że ciąg PHP zostanie przekształcona odpowiedniego typu JavaScript - w przypadku ciągów będzie to zapewnić, że ciąg jest zamknięty w " i jest właściwie uciekany.

EDIT ponownie

Po wykonaniu następujących

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

to, co jest napisane na stronie HTML (który jest następnie interpretowany przez przeglądarkę)

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

Ale to nie jest nawet poprawnym JavaScriptem. Co chcesz jest

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

Zanotuj " który zapewnia, że ​​cała sprawa jest ważna JavaScript i że zawartość $re będą interpretowane jako ciąg JavaScript w silniku JavaScript w przeglądarce. Wywołanie do json_encode() robi dokładnie to - przekształca zmienne PHP w odpowiednie zmienne JavaScript.

+0

Oh ..... tak ..... thnks. – sarthak

+0

JEDEN SŁOWO - GENIUS ... DZIĘKI ..... TO DZIAŁA ... MOŻE PROSIMY WYJAŚNIĆ MNIE DLACZEGO TO DZIAŁA, JEŚLI MOŻLIWE. – sarthak

+0

Whoa .... najlepsze wytłumaczenie w historii. dziękuję bardzo .. bardzo docenione. – sarthak

0

uwagi źródło jest echem spróbować i potwierdzić

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

spróbuj tego:

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

To miłe przypomnienie, działa w celu wyświetlenia Twojej zmiennej php –

1

Po pierwsze, nie można zakładać, że wszystkie DB podobne operacje będą zawsze kompletne sucesfully i zawsze zwraca dane . Otwórz podręcznik PHP, przejrzyj wszystkie wywołania funkcji mysqli_ * i dodaj odpowiedni test, aby wykryć, czy zwracają kod błędu, czy nie.

Po drugie, PHP i JavaScript nie działają w tym samym czasie. Po zakończeniu PHP dostajesz tylko zwykły tekst, który jest wysyłany do przeglądarki. Jeśli ten tekst jest kodem JavaScript, zostanie uruchomiony. I nie musisz zgadywać: kod JavaScript jest właśnie tutaj i możesz użyć menu Wyświetl źródło w przeglądarce, aby je sprawdzić.