Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ajax从php推送到jquery数组?_Javascript_Php_Jquery_Wordpress - Fatal编程技术网

Javascript 如何使用ajax从php推送到jquery数组?

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

我在服务器(PHP)上运行以下程序,在那里我循环我的帖子,并获取gmap字段中的一些坐标:

      $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;