使用$ .post,您可以向服务器发送信息,但是当您需要从服务器接收信息时会发生什么?
信息如何从php变量可以保存的方式转变为javascript变量可以保存的方式,反之亦然?
答案 0 :(得分:6)
这与您的问题更相关:http://docs.jquery.com/Ajax/jQuery.post
警告请求test.php(HTML或XML,取决于返回的内容)的结果。
$.post("test.php", function(data){
alert("Data Loaded: " + data);
});
通过额外的数据有效负载(HTML或XML,取决于返回的内容)来请求test.php的结果。
$.post("test.php", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
获取test.php页面内容,将其存储在XMLHttpResponse对象中并应用process()JavaScript函数。
$.post("test.php", { name: "John", time: "2pm" },
function(data){
process(data);
}, "xml");
获取以json格式返回的test.php页面内容(“John”,“time”=>“2pm”)); ?&GT)
$.post("test.php", { func: "getNameAndTime" },
function(data){
alert(data.name); // John
console.log(data.time); // 2pm
}, "json");
答案 1 :(得分:4)
结帐json_encode()
和json_decode()
。它们现在是PHP的一部分,允许您在PHP数组和关联数组(或stdClass对象)和javascript数组或对象(作为JSON文字)之间来回切换。
基本上,您可以执行echo json_encode($all_my_php_data);
并返回一个javascript对象,而不是返回xml或html。
如果传递'json'作为$ .post()的类型参数,则成功回调将包含您在PHP脚本中回显的JSON对象。
答案 2 :(得分:0)
然后您需要接收从服务器发回的内容。您只需使用'data'参数为$ .post定义回调函数。例如:
$.post('/index.php', { key: 'value' }, function(data) { alert(data); });
您可以指定返回值的类型,以便jQuery可以自动处理它。如果从PHP脚本返回JSON值,则应在末尾添加其他参数:
$.post('/index.php', { key: 'value' }, function(data) {
alert(data.someItem);
}, 'json');
但是如果你需要从PHP服务器获取数据而不先发布POST或GETting,那么你需要实现Comet。但这需要更多的工作:)
答案 3 :(得分:0)
callback功能的“jQuery.post”部分是您要查看的内容。
答案 4 :(得分:0)
在http中,您执行从客户端(Web浏览器中的javascript)到服务器的请求,然后处理后者返回的信息。选择在两种通信中表示哪种方式的信息取决于您。
当使用AJAX(可能通过jQuery)时,您可以向php处理程序发出请求,该处理程序将负责将信息返回给浏览器,通常格式为JSON文字(您可以使用json_encode(),如Brian所建议的那样。最终,您将在客户端上解析它(例如使用jQuery)以获取javascript对象。
($ .post(url,[data],[callback],[type])函数会自动解析响应并将其输出到回调函数,其签名应该是回调(data,textStatus)其中 data 是解析对象, textStatus 报告成功或失败状态(jQuery.post)。