我试图在div中显示ajax响应的值,为此我在视图文件中有以下代码。
<script type="text/javascript" src="MY LINK TO JQUERY"></script>
<script type="text/javascript">
$(function(){ // added
$('a.vote').click(function(){
var a_href = $(this).attr('href');
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>contents/hello",
data: "id="+a_href,
success: function(server_response){
if(server_response == 'success'){
$("#result").html(server_response);
}
else{
alert('Not OKay');
}
}
}); //$.ajax ends here
return false
});//.click function ends here
}); // function ends here
</script>
<a href="1" title="vote" class="vote" >Up Vote</a>
<br>
<div class="result"></div>
我的控制器(ajax向其发送值):
function hello() {
$id=$this->input->post('id');
echo $id;
}
现在我正在尝试实现的是获取我的视图文件中<div class="result"></div>
侧的server_response值(从控制器发送的值)。
我尝试了以下代码,但它没有在div中显示值。
你能告诉我问题出在哪里吗?
答案 0 :(得分:12)
问题是你有Ajax success
handler的混合参数。首先是您的脚本返回的data
,然后转到textStatus
。从理论上讲,它可以是“超时”,“错误”,“未修改”,“成功”或“解析错误”。但是,在success
中,textStatus将始终成功。但是,如果您需要在出错时添加alert
,则可以添加error
处理程序。是的,将$(“#result”)中的选择器更改为class。所以纠正后的代码可能如下所示:
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>contents/hello",
data: "id=" + a_href,
success: function(data, textStatus) {
$(".result").html(data);
},
error: function() {
alert('Not OKay');
}
});
答案 1 :(得分:5)
success: function(server_response) {
$(".result").html(server_response);
}
<div class="result"></div> // result is the class
选择器应为.result
而不是#result
答案 2 :(得分:1)
尝试将<div class="result"></div>
更改为<div id="result"></div>
,因为这是您在ajax成功函数中引用的内容
$("#result").html(server_response);