将jquery字符串转换为php

时间:2017-05-31 21:29:49

标签: php jquery mysql sql

所以我有一个从数据库中获取坐标的php,我希望它通过jquery变量运行。   这是PHP -

$sql = "SQL that works";
$vari = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($loc))
{echo "[";
 echo "''";
 echo $row['cor1'];
 echo ",";
 echo $row['cor2'];
 echo "]";
}

这是我希望它以这种形式传递的jquery -

var markers = [
['', 51.503454,-0.119562],
['', 51.499633,-0.124755]
];

2 个答案:

答案 0 :(得分:2)

实际上你必须改变你的PHP代码,如下所示: -

$sql = "SQL that works";
$vari = mysqli_query($con,$sql);
$data = array(); //create an rray variable
while($row = mysqli_fetch_assoc($loc)){ // use assoc for lighter $row array 
 $data[] = array('',$row['cor1'],$row['cor2']); // create sub-array and assign to final array
}

echo json_encode($data); //return final data to ajax

注意: - 现在通过parseJSON()在你的jQuery中解码这个json并做进一步的代码。

答案 1 :(得分:0)

如果你不想使用ajax,你可以这样做。

对于PHP,

...
$vari   = mysqli_query($con,$sql);
$coOrds = mysqli_fetch_array($loc);
$coOrds = json_encode($coOrds);
?>

对于JS,

var coOrdsJson = <?php echo $coOrds; ?>;
var coOrds     = $.parseJSON(coOrdsJson);
var markersArr = [];

for (var i=0; i < coOrds.length; i++ ) {
    markersArr[] = "['', " + coOrds[i].cor1 + ", " + coOrds[i].cor2 + "]";
}

var markers = markersArr.join(',');
markers = "[" + markers + "]";