2013-11-28 120 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。