现在,我要做的是用一块html替换首页上的标签。现在,页面基本上有:
<label id="replace"></label>
js目前有:
$(document).ready(function(){
$("#replace").load('/test');
});
Zend类函数有:
public function indexAction(){
$this->_helper->layout()->disableLayout();
$this->_view->message = "This is from TestController index";
}
最后index.phtml模板只有:
<?php echo $this->message;?>
现在,我想更改代码,以便不使用相同的消息替换该标签,而是执行POST,其中函数将提取参数,执行某些操作(例如,转到数据库并使用POST参数拉出一些东西然后返回消息。
我尝试过编辑js,看起来像是:
$.post('/test', {param : "test_param"},
function(data) {$("#replace").html(data);});
或
$.ajax({
type: 'POST',
url: '/test',
data: "{param:test_param}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {$("#replace").html(data);}
});
并且都没有奏效。我退了一步,试图复制.load功能并执行:
$.ajax({
url: '/test',
success: function(data) {
$('#replace').html(data);
alert('Load was performed.');
}
});
它也不起作用。
任何人都有关于如何做到这一点的任何提示?
答案 0 :(得分:0)
您确定可以直接使用ajax调用/test
吗?还要看看你打电话给的绝对网址是什么。尝试添加错误回调并查看它是否有效,它将为您提供错误响应,以帮助您解决问题。
答案 1 :(得分:0)
您看到的原始.post代码正确
$.post('/test', { param: "test_param" }, function(data) {
$('#replace').html(data);
});
您还可以尝试查看浏览器JavaScript控制台,看看是否有任何错误报告。
答案 2 :(得分:0)
您的控制器是否设置为自动JSON编码视图参数?
无论哪种方式,我认为你应该像
那样访问它 {success:function(data){$(“#replace”)。html(data.message
); }