Php 如何为页面上的多个div实现ajax功能?
我编写了一个commentbox,并成功地实现了一个函数,可以在ajax中删除注释,而无需刷新页面。问题是,在我刷新页面之前,ajax函数不会删除其他注释。我怎样才能解决这个问题?我是ajax新手。非常感谢。对不起,我的英语是瑞典语 //埃门 更好的解释是: 这是回应我评论的PHP代码:Php 如何为页面上的多个div实现ajax功能?,php,jquery,html,mysql,ajax,Php,Jquery,Html,Mysql,Ajax,我编写了一个commentbox,并成功地实现了一个函数,可以在ajax中删除注释,而无需刷新页面。问题是,在我刷新页面之前,ajax函数不会删除其他注释。我怎样才能解决这个问题?我是ajax新手。非常感谢。对不起,我的英语是瑞典语 //埃门 更好的解释是: 这是回应我评论的PHP代码: while($evtMsg = $event->fetch_assoc()) { echo' <div id="activity" class="comme
while($evtMsg = $event->fetch_assoc())
{
echo'
<div id="activity" class="comment'.$evtMsg['id'].'">
<div class="settings"><hr><hr><hr></div>
<div class="actSwine"></div>
<div class="act" id="delete">×<div class="abtSwine"></div><div class="abtbtn" id="deletewid">Radera</div></div>
<div class="act" id="favo" onclick="alert(\'hello world\');">Favorisera<br><div class="abtSwine"></div><div class="abtbtn" id="favowid">Inlägget kommer att hamna under "Mina favoriter"</div></div>
<div class="act" id="raport" onclick="alert(\'hello world\');">Anmäl<br><div class="abtSwine"></div><div class="abtbtn" id="raportwid">Det här inlägget är kränkande.</div></div>
<div id="clear"></div>
<div class="activitylabel">
<img src="'.$this->getUserId($evtMsg['userid'], "Profilepic").'" />
<div class="activityname"><?php echo "@".$username." , " . $fname . " " . $lname ?></div>
<div class="activitydomain"><?php echo $domain; ?></div>
<div id="clear"></div>
<p>
'.$evtMsg['message'].'
</p>
</div>
</div>
';
$id=$evtMsg['id'];
}
从您的代码和您的解释中,我知道您为页面中的多个元素提供了相同的id。当JavaScript和jQuery按ID在页面中查找元素时,它只查找一个具有所述ID的元素,并返回它找到的第一个具有指定ID的元素。这就是为什么ajax调用不会删除多个。
如果您可以为注释指定一个类名而不是id,并将选择器更改为类选择器,则应删除所有注释。我们看不到您的代码的作用,因此在您提供有问题的实际代码之前,我们无法回答此问题。这在很大程度上取决于您如何尝试执行此操作。能给我们看看代码吗?如果您的代码只工作一次,则可能是由于不一致或重复的div id以及几乎任何其他可能的原因。这就是Ajax的代码。所以,我是否正确地理解了它。当JS按ID查找元素时,它只检查一个指定项。但是如果给它上一节课,它可以保持活跃,寻找更多?是的,这是正确的。页面中元素的ID应该是唯一的。您不能为多个元素提供相同的ID。谢谢。但我该如何解决这个问题呢。有没有办法在类旁边插入唯一id?例如class=“style1 10”。例如,我在facebooks Div上看到过类似的东西。或者我应该使用整个类属性。是的,每个元素上可以有多个类名。因此,在生成元素时,也要将id添加到类中,不要忘记在类名之间留出空格。另外,我不认为您只能添加数字作为类名,因此您可以在id之前添加一个字母a 2,例如comment10,然后在jquery中查找
$('div').hasClass('comment'+id.).fadeOut('4000')
,诸如此类。它仍然会给我相同的结果。我将选择器从id切换到类。它仍然只删除1条注释。剩下的我需要刷新页面以删除另一个页面。
$("#delete").click(function(){
$.ajax({
type: "GET",
url: "deletestatues.php",
cache: false,
data: "id=" + id,
success: function(msg)
{
$("."+id).fadeOut('4000');
}
});