2014-01-09 71 views
-2

我試圖獲取緯度,經度和場地使用Java腳本的陣列,使用PHP,獲取數組

sites[0] // gets latitude 
sites[1] // gets longitude 
sites[2] // gets venue 

這是我的代碼,不介意的SQL查詢,我知道他們是壞的,但它功能現在。我只需要這個數組幫助:

var sites = [<?php 

include_once'config/connect.php'; 

$search= $_POST['search']; 
$search = stripslashes($search); 

$search = mysql_real_escape_string($search); 

$sql= "select * from venue where vID in (select vID from sv where sID in (select sID from sports where sN = '$search'));"; 

$result=mysql_query($sql)or die(mysql_error()); 

while($data=mysql_fetch_array($result)) 
{ 
    echo ",[".$data['latitude']."]"; 
    echo ",[".$data['longitude']."]"; 
    echo ",[".$data['venue']."]"; 

} 

?> ]; 
+2

那你想要什麼錯誤你會得到嗎? – user2936213

+0

我想獲得例如緯度,如果我鍵入網站[0],但它不起作用。讓我檢查一下, –

+0

是什麼錯誤? – user2936213

回答

1

創建一個包含你想要的值的普通PHP數組,然後調用json_encode將它轉換爲JSON。迴應一下,並在客戶端解析它。

<?php 
    $data = mysql_fetch_array($result); 
    $array = array($data['latitude'], $data['longitude'], $data['venue']); 
?> 

<script> 
    var sites = <?php echo json_encode($array); ?>; 
</script> 

編輯:作爲@kba指出,mysql_方法deprecated

0

如果SQL是工作正常,那麼你只需要刪除臨時演員「[」「]」,所以這將是這樣的:

echo $data['latitude'].", "; 
echo $data['longitude'].", "; 
echo $data['venue']; 

然後你的javascript數組將會正常工作

+0

爲什麼downvote?它修復了js數組的構造,他做錯了。 – LcSalazar

0

如果u甲肝PHP數組$網站,u需要將其添加到JS數組網站

<?php 
$sit=""; 
foreach($sites as $ar) 
{ 
    if($sit=="") 
    { 
     $sit=$ar; 
    } 
    else 
    { 
     $sit=$sit.",".$ar; 
    } 
} 
?> 

在JS:

var sites = [<?php echo $sit;] ?>; 
+0

如果'$ sit'包含','會怎麼樣?或'''? – johnnycardy

+0

它的變量用於存儲用逗號分隔的值,在所有迭代坐下包含逗號分隔的數組中的所有值。 –

+0

噢。但你知道我的意思 - PHP字符串沒有被轉義,並可能產生無效的JS。 – johnnycardy