我创建了一个小函数来测试Zend-Ajax交互。
在我的视图中,我设置了以下代码
<script type="text/javascript">
var urlform = '<?php echo $this->url('inbox/default', array('controller'=>'messages', 'action'=>'addmessage')); ?>';
</script>
<div onclick="ajaxtest();">Click</div>
然后,我在custom.js文件中创建了以下函数,它已经与布局
相关联function ajaxtest() {
$.post(urlform, null, function(data) {
if (data.success) {
alert('Ok');
} else {
alert('Failed');
}
}, 'json');
}
最后,这是addMessageAction
的代码public function addMessageAction()
{
$request = $this->getRequest();
$response = $this->getResponse();
$response->setContent('Zend'Json'Json::encode(array('success'=>1)));
return $response;
}
当我点击与javascript函数相关的div时,什么都没有发生,没有显示任何警告。
我错在哪里?它是否依赖于特定的zend设置?
我通过以下方式定义函数来解决这个问题:
var ajaxpost = $.post(urlform2).fail(function() {
alert("Failed");
})
ajaxpost.done(function(data) {
var parsed = jQuery.parseJSON(data);
if (parsed.success == 1) {
alert('Ok');
}
});