Я создал приложение, используя codeigniter, и у меня есть система сообщений, которая отображает сообщения пользователей, это делается с помощью оператора foreach.У меня есть некоторый JS в фоновом режиме, который, как только пользователь нажимает «удалить» определенного сообщения, которое скрывается от просмотра сообщения, в то время как JS отправляет идентификатор сообщения на мой контроллер и помечает это сообщение как удаленное.Однако происходит то, что когда пользователь нажимает кнопку «Удалить», скрывается только первое сообщение (только первое значение foreach), но все остальные сообщения имеют отдельные идентификаторы, но не отвечают на щелчок удаления.Я также должен отметить, что если я нажимаю «удалить» любого сообщения, первое сообщение скрывается, а не сообщение, на которое я щелкнул.
вот какой-то код:
Просмотр
<?php foreach ($rows as $r) : ?>
<li id="notification_<?php echo $r['MID']; ?>"><?php echo anchor("$r[MID]", 'X', array('class'=>'delete', 'rel'=>"$r[MID]")); ?>
<p>
<?php echo anchor("headless/view_msg/$r[MID]", $r['head'], array('rel'=>'notifications')); ?>
<?php if(strlen($r['body'] >= 74)) : ?>
<?php echo $r['body']; ?>
<?php else : ?>
<?php echo substr($r['body'], 0, 74) . "..."; ?>
<?php endif; ?>
</p>
</li>
<?php endforeach; ?>
JS:
$("a.delete").click(function(eve) {
eve.preventDefault();
var MID = $("a.delete").attr('rel');
$.post('headless/notification_read', {
MID: MID},
function(html){
if(parseFloat(html)){
$('#notification_' + MID).hide('slow')
console.log('success');
}else{
console.log('fail');
}
})
});
Я не уверен, что здесь происходит, но я предполагаю, что javascript связывает только первый foreach, а не остальные (если так, как бы я это исправить)
Любая помощь будет оценена.
Спасибо.