2012-11-13 39 views
0

我想在javascript函數中使用一個php函數中生成的JSON數組。我的代碼是這樣的:如何在JavaScript函數中使用PHP中生成的JSON數組?

$query = "SELECT lat, lng FROM Eventi"; 
$result = mysql_query($query) or die(mysql_error() . "<br/><br/>" . $query); 
if (mysql_affected_rows() != 0) { 
    while($r = mysql_fetch_array($result)) { 
     $rows = array(
      "latitudine" => $r['lat'], 
      "longitudine" => $r['lng'], 
     );} 
     $risultato_rows = json_encode($rows); 

現在我要恢復他們在子程序中沒有JavaScript的使用他們,我試過這樣:

var res = JSON.parse($risultato_rows); 
    alert var prova = res.[latitudine]; 

此代碼不能正常工作;我能做些什麼來使它正常工作?

+0

是第一個片段PHP和第二個JavaScript片段?如果是這樣,你不能直接使用相同的變量。 – pimvdb

+0

你回聲嗎? 'var res = JSON.parse(<?php echo $ risultato_rows?>);'console日誌,'console.log(res);' –

+0

是的,但我什麼也沒有 – Stefania

回答

2
res.[latitudine]; // You seem to mix up both the 
        // dot and bracket notation.. 

應該是要麼

res.latitudine;ORres["latitudine"];

+0

在這兩種情況下都不起作用 – Stefania

1

一個PHP變量不是在Javascript直接可見。假如你不這樣做,但是AJAX只是試圖使嵌入JSON在你的腳本,你可以這樣做:

?><script> 
var res = JSON.parse('<?php echo $risultato_rows; ?>'); 
var prova = res.latitudine; 
alert (prova); 
</script><?php 
+1

一個可能只是直接回顯JSON,因爲JSON是JavaScript的一個子集。 – pimvdb

+0

@Asad鑰匙總是被引用,這是如何阻止你迴應它。 – Musa

+0

@Musa你是對的,不知道我在想什麼 –

0

有幾個問題與您的代碼:

  1. 您需要echo的JSON字符串,包含在$risultato_rows中。那就是:

    var res = JSON.parse('<?= $risultato_rows; ?>');

  2. 當訪問屬性,你把鑰匙名在括號中的字符串。要訪問latitudine屬性,您可以使用res.["latitudine"]

  3. var關鍵字用於聲明變量時,而不是在訪問它們時使用。使用單獨的語句將值分配給prova並提醒它。
+0

我試着: var res = JSON.parse('<?php echo $ risultato_rows;?>'); var prova = res.latitudine; alert(prova); and var res = JSON.parse('<?= $ risultato_rows;?>'); var prova = res。latitudine; alert(prova); 但在兩種情況下都不起作用! – Stefania

相關問題