将jquery字符串转换为php

将jquery字符串转换为php,php,jquery,mysql,sql,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 "]"; } 这是我希望它以这种形式传递的jq

所以我有一个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]
];

实际上,您必须更改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,并执行进一步的代码。

如果您不想使用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 + "]";

为什么不使用ajax调用来准备数据呢?在jQuery中对返回的结果集进行json_编码不是更容易吗?如果数组值太大怎么办?它可能是最糟糕的。@VK321这取决于OP实际想对数据做什么。他可以通过对queryagree使用一些限制来使用load more概念,尽管这是一个比他所尝试的更好的解决方案。不用说,除非在包含JS文件之前,将PHP echo变量赋值移动到.PHP文件中标记之间的全局范围内,否则您将无法将此JS放入单独的JS文件中。