Php jQueryAjax—成功返回两组不同的数据是否可能?

Php jQueryAjax—成功返回两组不同的数据是否可能?,php,jquery,ajax,json,Php,Jquery,Ajax,Json,使用这个ajax请求,我将返回一个填充html的视图片段,以插入到布局中的特定div中 我的问题是如何声明#theDiv,我在构建视图片段的位置(在视图#控制器内)有可用的id 理想情况下,我会同时返回一些json,例如,指定:#theDiv,以及任何其他参数,例如哪个导航栏元素应该是活动的等等 $.ajax({ type: "POST", url: "controller/view_Controller.php", data: dataString,

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

我的问题是如何声明#theDiv,我在构建视图片段的位置(在视图#控制器内)有可用的id

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

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

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

        };
        });
请尝试以下方法:

$.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字符串。

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

$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吗?

非常感谢-我没有意识到您可以将html存储在json中,我记得读过这不是一个理想的环境?至于成功等等,我的意思是如果页面上的另一个元素应该被改变,比如改变导航栏上的活动类,这些东西可以同时被传递time@davivid只要编码正确,就没有理由不将HTML存储在JSON中。对于另一点,我将在原始JS中将函数定义为标准命名函数。然后,您可以根据AJAX调用的结果动态调用它们,例如,
'functions'=>array('navbarActive')、
在PHP中以及
$.each(data.functions,function(){this();})navbarActive
函数。很好的一个,这应该对我这个项目很有帮助