0

プロジェクトにモーダルを表示するために、Twitter Boostrap JS の Modal プラグインを使用しています。PHPとデータベースを使用してメッセージを表示しています。メッセージには「返信」と「削除」オプションがあります (それぞれ 1 つのモーダル)。これらのモーダルに配列IDを渡したいのですが、どうすればいいですか?

ここに私の表示コード:

<p><?php echo $row['message'];?></p>
<input type="hidden" id="msgid" value="<?php echo $row['id']?>">
<a href="#replyModal" data-toggle="modal" class="reply-to"><i class="icon-share-alt"></i>Reply</a>
<a href="#deletemodal" data-toggle="modal" class="reply-to"><i class="icon-trash"></i>Delete</a>

ID をモーダルに渡して、アクションを実行できるようにします。

<div class="modal fade" id="replyModal">
<form action="replymsg.php" method="post" enctype="multipart/form-data">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Reply:</h3>
</div>
<div class="modal-body">
<input type="text" id="msgid"></input>
<textarea name="message" style="width:98%; height:100px;"></textarea>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Post Reply</button>
</div>
</form>
</div>
4

1 に答える 1

1

解決策は非常に簡単です。実際には、非表示の入力をモーダル フォームにモード化するだけです。投稿時にIDを取得します。

<div class="modal fade" id="replyModal">
    <form action="replymsg.php" method="post">
        <input type="hidden" id="msgid" value="<?php echo $row['id']; ?>" />
        <div class="modal-header">
            <a class="close" data-dismiss="modal">×</a>
            <h3>Reply:</h3>
        </div>
        <div class="modal-body">
            <textarea name="message" style="width:98%; height:100px;"></textarea>
        </div>
        <div class="modal-footer">
            <button type="submit" class="btn btn-primary">Post Reply</button>
        </div>
     </form>
</div>

なんらかの理由で PHP のモーダル ウィンドウにアクセスできない場合は、jQuery を使用して a タグをクリックし、モーダル ポップアップ内のフォーム内の非表示の入力フィールドで削除する行の ID を設定します。

-

編集 - JavaScript の例を追加 - テスト: http://jsfiddle.net/3A7Mg/ (これは、返信リンクをクリックしたときに非表示の入力フィールドが追加されるモーダル div を調べた場合にのみ表示されます。)

以下の JavaScript を使用します。

$(document).ready(function () {
    $('a.reply-to').click(function (e) {
        var $exists = $('#replyModal form input#dbid');

        if($exists.length == 0) {
            $('#replyModal form').prepend('<input type="hidden" id="dbid" name="dbid" value="'+$('#msgid').val()+'" />');
        } 
    });
});

次に、ユーザーがフォームを送信すると、PHP POST で「dbid」という名前のインデックスが作成されます。

$_POST['dbid']

</p>

于 2012-11-17T20:16:05.517 に答える