从AJAX回调函数中分离数据

时间:2012-09-07 01:05:25

标签: php javascript ajax

当我按下按钮时,我执行一个返回数据的ajax帖子。该ajax帖子都更新数据并返回一个数字,告诉我该按钮是否应该突出显示。我的问题是,我希望ajax post回调函数返回数字和更新的信息。这对ajax文件很容易,但我不知道如何在回调函数上执行此操作。这是一个简单的例子。

$.post(ajax_file, 
{
primary_id: primary_id
}, 
function (data){
    //ajax file calls back the number 1 or the number 0. But I want to return more
    //than just that. Maybe an array would work?    
    if (data == 1) 
      { 
      $(the_button).addClass('highlighted');            
      }     
    else if (data == 0) 
          {
          $(the_button).removeClass();
          }         
});  

3 个答案:

答案 0 :(得分:3)

您需要以JSON格式进行回复。您的PHP代码必须使用与此类似的代码进行响应 -

$response = array(
  'code'=>1,
  'updates'=> $updates // this could be HTML or an array.
);

echo json_encode($response);

然后,您需要做的就是在post()函数中指定您期望的数据是JSON格式。

$.post(ajax_file, { primary_id: primary_id }, function (data){
    if (data.status == 1) { 
      $('.the_button').addClass('highlighted');            
    }     
    else if (data.status == 0) {
      $('.the_button').removeClass();
    }        
    // do something with data.updates 
},'json');  

答案 1 :(得分:0)

返回一个json。

data = {
  "check" : 1,
  "otherInfo" : {
  }
}

然后,在客户端,做

data.check检查condtion以突出显示按钮

data.otherInfo获取其他信息。

您可以在服务器端使用json_encode()将php数组转换为json。

答案 2 :(得分:-1)

返回一系列信息?返回一个对象?

{
    "returnCode": 4,
    "returnString" : "No way man",
    "LongData" : "This quick brown fox ignored the lazy dogs."
}