2013-11-28 50 views
2

jQuery彈出問題。我有一些內容由ajax加載。我希望該內容成爲彈出消息(onclick事件)。在我第一次點擊彈出鏈接時,它會顯示正確的內容。在第一次加載內容(在Ajax中)後,它會顯示正確的內容,但下次只要點擊彈出鏈接,就會顯示第一次加載的舊內容。這裏是代碼..jQuery彈出顯示舊內容不是新內容

<div id="company"> 
<div class="video-text"> 
<script> 
function popup() { 
    $("#dialog").dialog({ 
     modal: true, 
     buttons: { 
     Ok: function() { 
     $(this).dialog("close"); 
     } 
     } 
     }); 
}; 
</script> 



      <?php if (!empty($video_details)) {?> 
      <p><?php echo $video_details['companyName'];?></p> 

      <span class="txt-small"><?php 
      $company_desc = $video_details['companyDesc']; 
      echo substr("$company_desc", 0, 60); 
      //echo $company_desc; 
      ?> 
      </span> 
      <input type="submit" onclick="popup()" value="Read more.."> 
<div id="dialog" title="Read more.."> 
<p><?php echo $company_desc;?></p> 
</div> 
<?php }?> 
    </div> 

阿賈克斯:

var xmlhttp; 
     if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
      document.getElementById("company").innerHTML=xmlhttp.responseText; 
      } 
     } 
     xmlhttp.open("POST","http://172.16.1.181:85/mydomain/home/load_company/",true); 
     xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
     var data = 'id='+current.id; 
     xmlhttp.send(data); 
     //alert(current.id); 
     } 

我在這裏發佈我的ID給load_company控制器,它渲染company DIV的內容和負載.. 負載的所有內容在公司 div

<p><?php echo $company_desc;?></p>包含彈出內容.. 這裏是我螢火發佈

id 213 

提前響應

<div id="company"> 
<div class="video-text"> 
<script> 
function popup() { 
    $("#dialog").dialog({ 
     modal: true, 
     buttons: { 
     Ok: function() { 
     $(this).dialog("close"); 
     } 
     } 
     }); 
}; 
</script> 



      <span class="txt-small">Lorem Ipsum is simply dummy text of the printing and typeset 
      </span> 
      <input type="submit" onclick="popup()" value="Read more.."> 
<div id="dialog" title="Read more.."> 
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p> 
</div> 
    </div> 

謝謝..!

+0

顯示您的AJAX代碼。 – Barmar

+0

我更新了我的帖子..謝謝.. – Elavarasan

+0

您的AJAX回調函數正在更新'company' DIV,但您的彈出窗口顯示'dialog' DIV。 – Barmar

回答

1

您的popup();函數只顯示對話框,您需要使該函數也執行ajax請求,並顯示對話框。

另外,我可以問你爲什麼不使用jQuery for AJAX,看起來你已經好像在使用庫嗎?

喜歡的東西:

function popup() { 
    $.post("test.php", { id: current.id }, function(data) { 
    $("#company").innerHTML=data; 
    $("#dialog").dialog({ 
     modal: true, 
     buttons: { 
     Ok: function() { 
      $(this).dialog("close"); 
     } 
     } 
    }); 
    }); 
} 

你也將需要的內容元素上設置一個ID:<p id="content"><?php echo $company_desc;?></p>

+0

我更新了我的帖子..謝謝.. – Elavarasan

+0

我試過了,但它不工作(我有點新手在ajax。jquery)。所以我只是用它.. – Elavarasan

+0

對不起,他們可能是幾個語法錯誤,讓我檢查它,並很快更新 – Alfie

0

提交按鈕只是彈出一個名爲「對話」的DIV。看看你的函數,它負責更新變量$ company_desc。

我的猜測是你的if(!empty($ video_details))語句不允許你更新company_desc變量。改變你的邏輯。

+0

但它在第一時間顯示正確的內容(通過ajax加載第二個內容之後)。第一次出現問題,每當我點擊它只顯示第一次加載的舊內容..我更新我的帖子..謝謝.. – Elavarasan

0

Ater Ajax您必須更新對話框div,但在您的代碼中更新公司div,並顯示對話框div。