JQuery ajax - 是否有可能在成功时返回两组不同的数据?

时间:2010-11-04 17:51:19

标签: php jquery ajax json

使用这个ajax请求我返回一个填充html的视图片段,插入到布局中的特定div中。

我的问题是我如何声明#theDiv,我在构造视图片段的位置(在view_Controller中)有可用的id。

理想情况下,我会同时返回一些json,例如:#theDiv,以及任何其他参数,例如哪个nav bar元素应该是活动的等等....

    $.ajax({
      type: "POST",
      url: "controller/view_Controller.php",
      data: dataString,
      cache: false,
      dataType: "html",
      success: function(html){

           $('#theDiv').html(html)

        };
        });

2 个答案:

答案 0 :(得分:1)

请改为尝试:

$.ajax({
          type: "POST",
          url: "controller/view_Controller.php",
          data: dataString,
          cache: false,
          dataType: 'json',
          success: function(data){

               $(data.id).html(data.html)

         };
});

让脚本传回一个JSON对象,其id属性设置为元素的id,并将html元素设置为您希望它设置的HTML字符串。

答案 1 :(得分:1)

您需要在后端构建一组信息:

$data = array (
    'html' => $html,
    'target' => '#myDiv'
);

header('Content-type: application/json');
echo json_encode($data);

在你的JS中:

$.ajax({
    type: "POST",
    url: "controller/view_Controller.php",
    data: dataString,
    cache: false,
    dataType: "json",
    success: function(data){
       $(data.target).html(data.html)
    };
});

通过指定成功和错误,我不太明白你的意思 - 你的意思是你希望你的脚本能够定义成功调用的Javascript吗?