私は、データベースから読むと、未読メッセージの両方を表示するブートストラップモーダル持つ:PHPでwhile/fetchを使用して作成したdivにjQueryの.remove()を使用する方法は?
を未読のメッセージがある場合は(上を参照)通知バッジが表示されます。私は削除ボタンを追加しましたが、hrタグを含む特定のボタンを含むdiv全体を削除する方法を理解することはできません。問題は、最初に表示されていないdivタグとhrタグだけを削除することです。私は警告を設定しても、それは私に2番目の正しいdiv idを示しています。最初は何もしません。これが私が試みたものです。これは、全体モーダルdivのためのコードです:私は
<?php
}
$stmt->close();
}
}
?>
</div>
</div>
</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;?>">
を削除したい場所の
<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;
?>
出発点削除が必要なスクリーンショット:
ここは私のjQueryです。アラートは、 "msg_delete_btn_2"を表示します。これは、動的に生成された正しいIDですが、これは2番目のメッセージでのみ機能します。
$(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に自分のidを与えようとしました。
のスタイルを与える
hr
タグを持ってする必要はありません。あなたは、そのHTMLによって作成された構造で作業するためにjQueryを使用しています。 PHPとjQueryの間には関係がありません。 – lonesomeday私はajax関数を使用してデータベースから後で削除します。削除ボタンをクリックすると2番目のdivが削除されますが、最初は削除されません。 2番目のものだけが正しいのであれば、どうすれば正しい要素を取得できますか? – IRGeekSauce
コンソールに表示されるエラーは何ですか? – hassan