小编典典

div内的Ajax响应

ajax

我试图显示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中显示值。

你能告诉我问题出在哪里吗?


阅读 247

收藏
2020-07-26

共1个答案

小编典典

问题是您混合了Ajax
success处理程序的
参数。首先执行data脚本返回的内容,然后执行textStatus。理论上,它可以是“超时”,“错误”,“未修改”,“成功”或“
parsererror”。但是,在successtextStatus中将始终成功。但是,如果您需要添加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');
    }
});​
2020-07-26