Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JQuery.post回调数据为空_Php_Javascript_Zend Framework_Jquery - Fatal编程技术网

Php JQuery.post回调数据为空

Php JQuery.post回调数据为空,php,javascript,zend-framework,jquery,Php,Javascript,Zend Framework,Jquery,我对ZEND、JQuery、PHP和Javascript有问题。我对这些语言很陌生,我只是在努力学习 在其他情况下,我有jquery.post工作,但我现在无法让它执行简单的调用 phtml文件(/admin/user.phtml) 存在/admin/newusercallback.phtml文件 <?php ?> 我有两个弹出框出现,上面写着呼叫成功!和空 问题是,第二个弹出框应该显示“Test”而不是Null 如果我直接浏览到URL,我的浏览器将显示一个包含文本的窗口 "T

我对ZEND、JQuery、PHP和Javascript有问题。我对这些语言很陌生,我只是在努力学习

在其他情况下,我有jquery.post工作,但我现在无法让它执行简单的调用

phtml文件(/admin/user.phtml)

存在/admin/newusercallback.phtml文件

  <?php ?>
我有两个弹出框出现,上面写着呼叫成功!和空

问题是,第二个弹出框应该显示“Test”而不是Null

如果我直接浏览到URL,我的浏览器将显示一个包含文本的窗口

"Test"
(包括引号)

我的问题是,当直接浏览到正确显示数据“Test”的页面时,为什么testJquery的回调数据为Null?
除此之外,我如何修复它

您的控制器似乎只响应HTML/文本。
我不知道怎么做,但是你的控制器应该返回JSON,这是因为你的jQuery函数要求“JSON”格式,而文本“Test”不是JSON

解决方案: 1.删除testJquery()函数上的“json”数据类型:

    function testJquery(){
        $.post(url,{},function(data){
            window.alert("Call successful!");
            window.alert(data);
        });
    }
二,。编辑AdminController.php文件以对数组对象进行编码

    public function newusercallbackAction(){
        echo json_encode(array("Test"));
    }

只有当响应头“Content Type”是有效的json mime时,它才会工作,即
application/json
。 速记版本
.getJSON

在输出任何其他内容之前,请将其放入php中

标题(“内容类型:application/json;charset=utf-8”)


当我对它进行json_编码时,我认为它变成了一个json对象。当我删除“json”时,对象将变为未索引。添加json并对数组进行编码将返回空数组。如果要在jQuery函数中添加“json”,请确保直接从浏览器访问URL时将打印类似{“Key”:“Test”}或[“Text”]的内容。我不确定这家伙为什么投了反对票。。。据我所知,他走上了正确的道路。字符串本身不是JSON。JSON_encode(“Test”)应该是有效的JSON,我刚刚试过——不是。另外,如果您查看所有示例,它们都使用数组。我的印象是json_encode只是为数组构建的。。。请随意证明我错了。那个json解析器实际上比大多数人都要宽松得多。请在我之前发布的链接中再试一次。在php函数中尝试一下。我在IE中尝试了我现有的代码,它在那里工作。它只在firefox和Chrome中失败。添加JSON.parse并没有解决问题。From:“
JSON\u encode()
将生成简单值(即既不是对象也不是数组)的JSON如果给定一个字符串、整数、浮点或布尔值作为输入值。虽然大多数解码器都会接受这些值作为有效的JSON,但有些可能不接受,因为规范在这一点上是不明确的。“我只是查看了RFC 4627和JSON.org,它看起来并不是很不明确——语法要求根上有一个对象或数组(但可能PHP文档早于规范?)。尝试将
json_编码(“Text”);
更改为
json_编码(数组(“result”=>“Test”);
window.alert(data);
更改为
window.alert(data.result);
@shadow
json_解码(“Test”));
,也适用于node.js尝试过它,但效果很奇怪。不知道我做了什么不同。无论如何,我上面建议的是一种更好的使用json的方法,因为它允许您发送额外的信息(在其他元素中)
"Test"
    function testJquery(){
        $.post(url,{},function(data){
            window.alert("Call successful!");
            window.alert(data);
        });
    }
    public function newusercallbackAction(){
        echo json_encode(array("Test"));
    }