Javascript 如何使用ajax从php推送到jquery数组?
我在服务器(PHP)上运行以下程序,在那里我循环我的帖子,并获取gmap字段中的一些坐标:Javascript 如何使用ajax从php推送到jquery数组?,javascript,php,jquery,wordpress,Javascript,Php,Jquery,Wordpress,我在服务器(PHP)上运行以下程序,在那里我循环我的帖子,并获取gmap字段中的一些坐标: $location = get_field('location'); $lat = $location['lat']; $lng = $location['lng']; 然后我创建一对lat和lng坐标,如下所示: $coordinates = $lat.", ".$lng; echo $coordinates; 然后在JavaScript
$location = get_field('location');
$lat = $location['lat'];
$lng = $location['lng'];
然后我创建一对lat和lng坐标,如下所示:
$coordinates = $lat.", ".$lng;
echo $coordinates;
然后在JavaScript ajax成功的客户端上,我将每一对推送到一个数组var-coords=[]代码>我在页脚中有
但我在控制台中得到了一个奇怪的结果:
["4"]
(index):148 (2) ["4", "0"]
(index):148 (3) ["4", "0", "."]
(index):148 (4) ["4", "0", ".", "7"]
(index):148 (5) ["4", "0", ".", "7", "2"]
(index):148 (6) ["4", "0", ".", "7", "2", "7"]
(index):148 (7) ["4", "0", ".", "7", "2", "7", "2"]
(index):148 (8) ["4", "0", ".", "7", "2", "7", "2", "0"]...
这就是全部代码:
PHP
JavaScript
$(文档).ready(函数(){
$(“#searchNations”)。在(“单击”,函数(){
//clearOverlays();
获取(日期搜索);
});
获取(日期搜索);
函数获取(日期搜索){
$.ajax({
url:“”,
键入:“post”,
数据类型:“json”,
数据:{
操作:“数据提取”,
日期:日期搜索
},
成功:功能(数据){
var data=$.parseJSON(数据);
对于(var i=0;i
在php中,坐标输出为字符串,但在javascript中作为json处理。必须将坐标推入数组并对其进行编码:
if( $query->have_posts() ):
$coordinates = [];
while( $query->have_posts() ) : $query->the_post();
$location = get_field('location');
$lat = $location['lat'];
$lng = $location['lng'];
$coordinates[] = $lat.", ".$lng;
endwhile;
echo json_encode($coordinates);
die;
endif;
有趣的是,您需要在成功处理程序的第一行上console.log(data)
。你没有得到你所想的(“number,numner”
)。@RandyCasburn如果我这样做,我会得到49.302473949.2832529
。@RandyCasburn还将连接更改为$coordinates=$lat+”,“+$lng代码>因为它是php而不是$coordinates=$lat.“,”$lng代码>如我所愿had@RandyCasburn天哪,是的,它是php,我正确地使用了点,把它改回来了now@RandyCasburn基本上现在我有:40.7272074,8.575266499999840.7197406,8.56351229999957
,这是正确的,但写错了,它们是4个坐标和两对,应该是40.7272074,8.5752664999998,40.7197406,8.56351229999957
因此它不会分割一对。非常感谢,它可以工作,但我们还需要将js数据循环中的-1
从for(var i=0;i删除到for(var i=0;i
这是一个包含两个字符串元素的数组。请删除您的parseJSON
调用,正如您告诉$的那样。ajax
应该期望json响应并为您执行解码
$(document).ready(function() {
$("#searchNations").on("click", function() {
//clearOverlays();
fetch(datesSearch);
});
fetch(datesSearch);
function fetch(datesSearch) {
$.ajax({
url: '<?php echo admin_url('
admin - ajax.php '); ?>',
type: 'post',
dataType: 'json',
data: {
action: 'data_fetch',
dates: datesSearch
},
success: function(data) {
var data = $.parseJSON(data);
for (var i = 0; i < data.length - 1; i++) {
coords.push(data[i]);
console.log(coords);
};
}
});
}
});
if( $query->have_posts() ):
$coordinates = [];
while( $query->have_posts() ) : $query->the_post();
$location = get_field('location');
$lat = $location['lat'];
$lng = $location['lng'];
$coordinates[] = $lat.", ".$lng;
endwhile;
echo json_encode($coordinates);
die;
endif;