Nasıl PHP değişkenleri JavaScript değişkenleri dönüştürebilirim?

3 Cevap php

Ben javascript php değişkenler eklemek çalışıyorum.

Burada kırık kod:

 var tokens = [<?
 $result = mysql_query("SELECT * FROM accounts ORDER BY id DESC") or die (mysql_error()); 
 while ($row = mysql_fetch_array($result)) { 
 $user_name = $row['user'];
 $user_id = $row['id'];
 echo "['$user_name','$user_id'],";
 }
 ?>]

3 Cevap

Kullanım PHP'nin json_encode & sonra javascript doğrudan, örneğin dışarı echo:

$fruit = array("banana", "apple", "strawberry", "raspberry", "orange");
$json_fruit = json_encode($fruit);

echo "var fruit = $json_fruit;";

Edit: I have updated this answer to no longer use eval() since it is not required. I had just started using JSON when I first answered this question.

Bunu yapın:

 echo "['$user_name','$user_id'],";

... Bu üretecektir anlamı:

[ ['a','b'], ['a','b'], ['a','b'], ['a','b'], ]

Her zaman "," ile sona erecek fark ve bu yanlış bir sözdizimi.

Doğru sözdizimi:

[ ['a','b'], ['a','b'], ['a','b'], ['a','b'] ]

Ben bir PHP adam değilim, ama böyle bir şey bunu düzeltmek olacağını söyleyebilirim:

 var tokens = [<?
 $result = mysql_query("SELECT * FROM accounts ORDER BY id DESC") or die (mysql_error()); 
 $i = 0;
 while ($row = mysql_fetch_array($result)) { 
 $i++;
 $user_name = $row['user'];
 $user_id = $row['id'];
 echo "['$user_name','$user_id']";
 if($i < sizeof($result)-1 ) // incorrect syntax, but you get the point
   echo ","
 }
 ?>]

PHP sunucu üzerinde çalışır. JavaScript istemci üzerinde çalışır.

Sen PHP JavaScript üretebilir, ancak JavaScript PHP çalıştıramazsınız.

(Bu web işin çeşitli bileşenleri, özellikle HTTP, tüm bu iyi anlamak için nasıl okuma değer.)

Eğer bütün sayfayı yeniden olmadan tarayıcı istemci eylemlerine yanıt olarak PHP eylemleri gerçekleştirmek istiyorsanız, 'ajax' araştırmak.