我不确定是否有任何方法可以做到这一点,但如果有一个简单的解决方案,这将解决我的很多问题。
我需要/希望能够做的是在我成功的 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/