将jquery字符串转换为php
所以我有一个php,它从数据库中获取坐标集,我希望它通过一个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
$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文件中。