Php 使用Json_encode返回结果
我使用Jquery对PHP表单进行AJAX调用:Php 使用Json_encode返回结果,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我使用Jquery对PHP表单进行AJAX调用: $.ajax({ type : 'POST', url : 'submit_form.php', dataType : 'json', data: dataString , 它使用以下代码对数据库中的结果进行编码: echo json_encode($results); 然而,它将数据打印回发出AJAX调用的页面顶部,这完全破坏了IE中的功能,因为它返回声明之前的文本字符串 {"status":false,"
$.ajax({
type : 'POST',
url : 'submit_form.php',
dataType : 'json',
data: dataString ,
它使用以下代码对数据库中的结果进行编码:
echo json_encode($results);
然而,它将数据打印回发出AJAX调用的页面顶部,这完全破坏了IE中的功能,因为它返回
声明之前的文本字符串
{"status":false,"msg":"Sorry The Queue is full"}<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
{“status”:false,“msg”:“对不起,队列已满”}
无论如何,我可以在页面上取消此echo函数,但仍将数据数组返回到我的页面,以便使用结果,如(data.msg)对响应数据使用回调函数。回调函数是处理接收到的数据的函数。它必须在全局范围内(AFAIK)。当服务器的响应就绪时,将调用函数并处理数据
// from the server:
someFunction({"status":false,"msg":"Sorry The Queue is full"});
// in your page, in a script tag, etc.
window["someFunction"] = function(result){
// do something
}
试试这个。成功调用后,您将得到js对象的结果。在控制台中检查结果。尝试将其放入:
标题(“内容类型:application/json”)代码之前的代码:echo json_encode($results)代码>
致以最诚挚的问候……我不太清楚您在说什么,我正在使用$(文档).ready(函数)(){
“我的ajax成功”函数已经将结果作为参数。您遇到的问题是,您试图将结果回传到已经有数据的页面上。典型的ajax工作流通常是这样的:网页上的一些javascript,如index.html,向单独的服务器页面发出请求,如doWork.php?args=frutsalad->server在原始页面(index.html)上的同一个doWork.php->callback函数上回显结果,侦听要调用的回调函数,并根据收到的数据更新页面。如果我不回显json_编码($result),log返回为null回显结果,然后它将在AJAX调用上可见dataType:“json”
已指定PHP文件的内容头,重新声明它破坏了代码。@Edward:dataType
是客户端,而头(“内容类型:应用程序/json”)
用于定义一个http头,告诉浏览器文档正文中需要什么类型的数据/文档当我将该头添加到php文件时,它会在浏览器窗口中显示我的整个文档,就像我在页面上单击“查看源代码”一样。@Edward是$results
变量数组吗?@evolquez是的,它是一个关联变量数组。
$.ajax({
type : 'POST',
url : 'submit_form.php',
dataType : 'json',
success: function(data) {
console.log(data);
});