【发布时间】:2012-11-05 23:59:45
【问题描述】:
我遇到了 ZEND、JQuery、PHP 和 Javascript 的问题。我对这些语言非常陌生,我只是在尝试解决它们。
我在其他情况下也有过 jquery.post 的工作,但我现在不能让它做一个简单的调用。
phtml 文件 (/admin/user.phtml)
function testJquery()
{
var url = "<?php echo $myHome2Url.'/admin/newusercallback/sessionid/'.$_SESSION['mySessionId'].'/lang/'.$_SESSION['language']?>";
console.log(url);
$.post(url,{},
function(data)
{
window.alert("Call successful!");
window.alert(data);
},"json");
}
PHP 文件:(AdminController.php)
public function newusercallbackAction()
{
echo json_encode("Test");
}
存在 /admin/newusercallback.phtml 文件。
<?php ?>
运行时,控制台会打印以下消息:
POST https://dev.myurl.ca/admin/newusercallback/sessionid/0c1a5e41-ad0a-470d-9901-305464b48908/lang/ENG
https://dev.myurl.ca/admin/newusercallback/sessionid/0c1a5e41-ad0a-470d-9901-305464b48908/lang/ENG
GET https://dev.myurl.ca/admin/user/sessionid/0c1a5e41-ad0a-470d-9901-305464b48908/lang/ENG/report_id/0/
我有 2 个弹出框出现,显示呼叫成功!和空
问题是第二个弹出框应该显示“测试”而不是 Null。
如果我直接浏览到 URL https://dev.myurl.ca/admin/newusercallback/sessionid/0c1a5e41-ad0a-470d-9901-305464b48908/lang/ENG,我的浏览器会显示一个带有文本的窗口
"Test"
(包括引号)
我的问题是,为什么testJquery的回调数据为空,直接浏览页面时正确显示数据“测试”? 除此之外,我该如何解决它!
【问题讨论】:
-
尝试将
json_encode("Text");更改为json_encode(array("result"=>"Test"));和window.alert(data);更改为window.alert(data.result); -
@shadow
json_decode('"Test"');codepad.org/Slqt2Aaq,也适用于 node.js -
试过了,效果很好jsfiddle.net/9PnRQ
-
奇数。想知道我做了什么不同的事情。无论如何-我上面建议的是使用 json 的更好方法,因为它还允许您发送额外信息(在其他元素中)
标签: php javascript zend-framework jquery