php - jQuery Ajax 返回 html 和 json 数据

标签 php jquery ajax json

我不确定是否有任何方法可以做到这一点,但如果有一个简单的解决方案,这将解决我的很多问题。

我需要/希望能够做的是在我成功的 ajax 请求中返回 HTML 和 JSON。原因是,我想请求一个文件并返回该页面的所有内容,但我还希望能够以 json 格式从该页面返回一组指定的信息,以便我可以将其用于其他用途。

这就是我现在正在做的:

     $.ajax({
    type: "POST",
    url: "inc/"+page+".php",
    data: "id="+encodeURIComponent(pageID),
    success: function(html){

        $("body > .container").html(html);

      }
      });

这是我希望能够做的:

     $.ajax({
    type: "POST",
    url: "inc/"+page+".php",
    data: "id="+encodeURIComponent(pageID),
    success: function(html){
        $("body > .container").html(html);
            $("title").html(json.PageTitle)
      }
      });

在返回的页面上,我会指定我想要的标题。 (例如,如果是个人资料,我会返回用户名)

最佳答案

用 JSON 包裹的 HTML 和数据

您可以通过返回一个包含 2 个元素的 JSON 数组来实现。 第一个元素包含 HTML,第二个元素包含另一个包含数据的 JSON 数组。你只需要小心地打开它,不要弄坏任何东西。

服务器端

$html = '<div>This is Html</div>';
$data = json_encode(array('page_title'=>'My Page'));
$response = array('html'=>$html, 'data'=>$data);
echo json_encode($response);

客户端

//Ajax success function...

success: function(serverResponse){
    $("body > .container").html(serverResponse.html);
    var data = JSON.parse(serverResponse.data);
    $("title").html(data.page_title)
  }

注意 1:我认为这就是 @hakre 在他对您的问题的评论中的意思。

注意 2: 这种方法有效,但我同意 @jheddings 的观点,避免混合表示和数据可能是个好主意。编码业力会回来咬人。

关于php - jQuery Ajax 返回 html 和 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13323393/

相关文章:

php - 在 Eloquent Model Observer 中使用 Request

javascript - for 循环在第一次迭代时停止

javascript - 弄清楚 AJAX POST 函数时遇到问题

php - 选择插槽最大的行

php - 有没有办法通过编写 PHP 来生成数据库?

jQuery每次调用toggle()时都会获取文件错误

javascript - 显示来自 jquery 对象的数据?

jQuery - 选择第四行之后的所有表格行

java - jquery ajax和java服务器,丢失数据

php - Jenkins中的 Composer 错误