首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从jQuery函数访问Ajax响应

从jQuery函数访问Ajax响应
EN

Stack Overflow用户
提问于 2015-02-17 04:11:13
回答 3查看 107关注 0票数 0

我有一个PHP函数,将变量传递给它,它返回一个包含开始日期和结束日期的数组。

代码语言:javascript
复制
<?php
 function dateRangeTimeFrame($var1){
  ...

  $date['startDate'] = $startDate;
  $date['endDate'] = $endDate;

  return $date;
 }
?>

我还试图在AJAX调用中使用这个PHP函数,以便重用代码。我在这一页的开头添加了以下内容:

代码语言:javascript
复制
if (isset($_POST['dateFunction'])) {
  print_r(dateRangeTimeFrame($_POST['dateFunction']));
}

我的jQuery代码如下:

代码语言:javascript
复制
$.ajax({
    url: 'includes/functions.php',
    type: 'post',
    data: { "dateFunction": theDate},
    success: function(response) { 
        console.log(response['startDate']); 
        console.log(response.startDate); 
    }
});

我的问题是,我不知道如何访问php函数返回的响应。

下面是我从PHP函数中得到的响应:

代码语言:javascript
复制
Array
(
  [startDate] => 2015/01/17
  [endDate] => 2015/02/16
)

我将如何从PHP响应中获得这两个vars?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-17 04:12:26

您需要使用JSON。您的Javascript本机理解并能够解析它。

代码语言:javascript
复制
if (isset($_POST['dateFunction'])) {
   echo json_encode(dateRangeTimeFrame($_POST['dateFunction']));
}

和你的jQuery (注:我加了dataType)

代码语言:javascript
复制
$.ajax({
    url: 'includes/functions.php',
    dataType: 'json',
    type: 'post',
    data: { "dateFunction": theDate},
    success: function(response) { 
        console.log(response.startDate); 
    }
});
票数 4
EN

Stack Overflow用户

发布于 2015-02-17 04:17:27

代码语言:javascript
复制
    <?php
     function dateRangeTimeFrame($var1){
      ...

      $date['startDate'] = $startDate;
      $date['endDate'] = $endDate;

      return json_encode($date);
     }

?>

jQuery

代码语言:javascript
复制
$.ajax({
    url: 'includes/functions.php',
    type: 'post',
    data: { "dateFunction": theDate},
    dataType: "json",
    success: function(response) { 
       console.log(response.startDate); 
    }
});
票数 1
EN

Stack Overflow用户

发布于 2015-02-17 04:40:50

代码语言:javascript
复制
<?php
function dateRangeTimeFrame($var1) {
   // ...

   $date['startDate'] = $startDate;
   $date['endDate'] = $endDate;

   echo json_encode($date);
}
?> 

Ajax

代码语言:javascript
复制
$.ajax({
   url: 'includes/functions.php',
   type: 'post',
   data: { "dateFunction": theDate },
   success: function(response) { 
      for (var i = 0; i < response.length; i++) {
         alert(response[i].startDate);
      } 
   }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28554503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档