【问题标题】:Converting jquery string to php将jquery字符串转换为php
【发布时间】:2017-05-31 21:29:48
【问题描述】:

所以我有一个从数据库中获取坐标集的 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]
];

【问题讨论】:

  • 为什么不用ajax调用来准备数据?
  • json_encode() 使用 jQuery 中的结果集返回工作不是更容易吗?

标签: php jquery mysql sql


【解决方案1】:

实际上你必须改变你的 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 并做进一步的代码。

【讨论】:

  • 数组值太大怎么办?这可能是最糟糕的。
  • @VK321 这取决于 OP 实际想要对数据做什么。他可以通过使用一些限制查询来使用加载更多概念
  • 同意 - 虽然这是一个比他正在尝试的更好的解决方案。
【解决方案2】:

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

【讨论】:

  • 不用说 - 你不能把这个 JS 放到一个单独的 JS 文件中,除非你将 PHP 回显变量分配到 .php 文件中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-08
  • 1970-01-01
  • 1970-01-01
  • 2011-06-09
  • 2014-11-02
  • 2017-03-31
  • 2011-07-28
相关资源
最近更新 更多