2012-05-13 47 views
9

我想在div內顯示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; 
      }  

現在我試圖做到的,是讓server_response值(即正在從控制器發送的值)端<div class="result"></div>在我的查看文件。

我試過下面的代碼,但它沒有顯示div內的值。

您能告訴我問題在哪裏嗎?

+0

請花時間縮進您的問題。 – gdoron

回答

10

的問題是,你有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'); 
    } 
});​ 
+0

「成功」處理程序中的textStatus總是「成功」......不是嗎? – gdoron

+0

嗯。實際上應該是。但它被記錄。讓我檢查一下。 – VisioN

+0

這就是爲什麼我刪除了我的答案中的代碼, – gdoron

1

嘗試改變<div class="result"></div><div id="result"></div>,因爲這是你引用什麼在你的Ajax成功功能

$("#result").html(server_response);

+1

+1 :)您的回答是正確的:)謝謝 –

4
success: function(server_response) { 
     $(".result").html(server_response); 
}​ 

<div class="result"></div> // result is the class 

的選擇應該是.result#result

+0

所有的回覆都有幫助。 +1。 – VisioN

+0

@gdoron +1 :)你的回答是正確的:)謝謝 –

+0

@black_belt。我笑了一下。謝謝... – gdoron