我试图显示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 class="result"></div>
我尝试了以下代码,但未在div中显示值。
你能告诉我问题出在哪里吗?
问题是您混合了Ajax success处理程序的参数。首先执行data脚本返回的内容,然后执行textStatus。理论上,它可以是“超时”,“错误”,“未修改”,“成功”或“ parsererror”。但是,在successtextStatus中将始终成功。但是,如果您需要添加alert错误,则可以添加error处理程序。是的,将$(“#result”)中的选择器更改为class。因此,更正后的代码可能如下所示:
success
data
textStatus
alert
error
$.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'); } });