我有一個顯示數據庫中讀取和未讀消息的引導模式:如何在PHP中使用while/fetch創建的div上使用jQuery .remove()?
它顯示了一個通知徽章(參見上圖),如果有未讀郵件。我添加了一個刪除按鈕,但無法弄清楚如何刪除包含該特定按鈕的整個div,包括hr標籤。問題是,它只會刪除您在那裏看到的第二個div和hr標籤,但不是第一個。我甚至有一個警報設置,它顯示了第二個正確的div ID。第一個什麼都不做。這是我試過的。這是整個模式的div代碼:凡我想刪除
<div id="msg_content_<?php echo $div_count;?>" class="msg-content">
<div class="avatar-container">
<a href="../pages/messages.php?id=<?php echo $msg_id; ?>" class="lighten"><img
src="<?php echo $avatar; ?>" class="msg-avatar"></a>
<div class="text-container">
<span class="show-sender"><?php echo $sender_name; ?></span>
<span class="show-msg-status"><?php
if ($msg_seen == 0) {
echo "Unread";
} else {
echo "Read";
}
?></span>
<br/>
<span class="show-msg"> Subject: <em><?php echo $subject; ?></em></span>
<button id="msg_delete_btn_<?php echo $div_count;?>" class="delete-btn">delete</button>
<br/>
<span class="show-timestamp"><?php echo date('D, F jS, Y h:i A', strtotime($timestamp)); ?></span>
</div>
</div>
</div>
<hr id="<?php echo $div_count;?>">
在那裏我想刪除
<?php
}
$stmt->close();
}
}
?>
</div>
</div>
</div>
終點
<div id="messages_modal" class="modal fade" role="dialog">
<div class="modal-dialog modal-messages-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="modal_label">Messages
<button class="close" data-dismiss="modal">×</button>
</h4>
</div>
<div class="modal-body">
<?php
$subject = "";
$query = "SELECT id FROM `users` WHERE username=?";
if (!$stmt = $connection->prepare($query)) {
echo $stmt->error;
} else {
if (!$stmt->bind_param('s', $username)) {
echo $stmt->error;
} else {
$stmt->execute();
$stmt->bind_result($recip_id);
$stmt->fetch();
$stmt->close();
}
}
$query = "SELECT username, avatar, conversation_id, conversation_subject, time, msg_seen FROM `users` INNER JOIN `conversation` ON `users`.id = `conversation`.user_1
WHERE user_2 = ? ORDER BY time DESC";
if (!$stmt = $connection->prepare($query)) {
echo $stmt->error;
} else {
if (!$stmt->bind_param('i', $recip_id)) {
echo $stmt->error;
} else {
$stmt->execute();
$stmt->bind_result($sender_name, $avatar, $msg_id, $subject, $timestamp, $msg_seen);
while ($stmt->fetch()) {
$div_count++;
if ($msg_seen == 0) {
$notification_count++;
}
$subject = (strlen($subject) > 16) ? substr($subject, 0, 14) . '...' : $subject;
?>
STARTING POINT我需要刪除的屏幕截圖:
這是我的jQuery。該警告顯示我「msg_delete_btn_2」,這是正確的動態生成的ID,但它僅適用於第二條消息。
$(document).ready(function() {
$('#msg_delete_btn_<?php echo $div_count;?>').click(function() {
$('#msg_content_<?php echo $div_count;?>').remove(); //<-- REMOVES DIV
$('#<?php echo $div_count;?>').remove(); //<-- REMOVES <hr> TAG
alert(this.id); //<-- SHOWS ME "msg_delete_btn_2" for 2nd div, which is correct. First div does nothing.
});
});
那麼,如何通過刪除按鈕訪問任何div?我試圖通過創建一個count變量來無效地給出按鈕和div自己的id。
您使用PHP創建HTML的風格。您正在使用jQuery來處理由該HTML創建的結構。 PHP和jQuery在這裏沒有關係。 – lonesomeday
我打算繼續使用ajax函數從數據庫中刪除。當我點擊刪除按鈕時,它會刪除第二個div,但不是第一個。我如何獲得正確的元素,然後如果它只爲第二個元素工作? – IRGeekSauce
控制檯中顯示的錯誤是什麼? – hassan