お忙しいところ失礼いたします。
プログラミング初心者です。
現在、PHPとMySQLを主に使用して簡易なメッセージの送・受信システムのようなものを作っています。Ajaxは使用していません。
受信したもの(カラムの送り先名が自分となっているもの)を、PDOを使用してMySQLに接続し、SELECT文で、メッセージのタイトル・日付等の一部分のみDBテーブルからとりだし、一覧で並べています(LIMITで絞った件数、while使用)。
その一覧に”詳細”のようなボタンをつけて、それをクリックしたら、そのメッセージのより詳しい内容がでてくる、というようにしたいです。
それで、ブートストラップにモーダルの機能があったのでそれを使用し、ボタンクリックでモーダルウインドウが出現し、内容が出てきたのは出てきたのですが、並べたメッセージどれの詳細ボタンをクリックしても、1番上のメッセージの詳細内容しかでてこなかったのです。
(例)
位置
上 メッセージA ボタンクリック→ A詳細
中 メッセージB ボタンクリック→ A詳細
下 メッセージC ボタンクリック→ A詳細
そうではなく、下記の様にメッセージごとに対応する詳細内容がでてくるようにしたいのです。
(例)
位置
上 メッセージA ボタンクリック→ A詳細
中 メッセージB ボタンクリック→ B詳細
下 メッセージC ボタンクリック→ C詳細
ブートストラップHPに記載されているイベントのところも参照してみたのですが、よくわからず。
SELECTでとりだした内容もしくはWhile構文がモーダルには反映しないのか、そうだとしたらどのようなことをしたらいいのか、色々書籍やHPを見たりしたのですがわからず、今回ここに質問させていただきました。
もしなにか解決策がありましたら、ご教授いただけないでしょうか。
よろしくお願いします。
遅くなりまして申し訳ありません。
「質問文の状況が再現できるPHP/JavaScriptを質問文にコードブロックで追記してください。」
コードブロックとは<code>内(青枠内)にコードを記述、ということでよろしいのでしょうか。
間違っていたらすみません。見づらいかもしれませんが、以下追記です。
<?php try{ $db = getDb(); }catch(PDOException $e){ print "エラー:{$e->getMessage()}"; } //DBからSELECT文で合致するmessagecontents_tblの行を3行選択。 $stt = 'SELECT * FROM messagecontents_tbl WHERE for_id=? ORDER BY message_id DESC LIMIT 3'; $prepare = $db->prepare($stt); $prepare->bindValue(1,$my_num); $prepare->execute(); $db = null; //while文でユーザーの受信一覧(3件)を表示 $row=array(); while($row = $prepare->fetch(PDO::FETCH_ASSOC)){ ?> <div class="panel panel-default"> <div class="panel-heading"> <div class="panel-title"> <?= h($row['date']) ?><br><?= h($row['user_name']); ?> さんへ </div> </div> <div class="panel-body"> <?= h($row['send_name']); ?> さんからメッセージ<br><br> <!--ボタンクリックでモーダルウィンドウを開き詳細表示--> <button type="button" class= "btn btn-success btn-sm" data-toggle="modal" data-target="#sampleModal">詳細</button> <div class="modal fade" id="sampleModal" > <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span>×</span></button> <h3 class="modal-title"> <?= h($row['date']) ?> <?= h($row['send_name']); ?> さんからメッセージ</h3> </div> <div class="modal-body"> ◇用件◇<br> <?= h($row['msgnote']); ?><br><br> ◇その他◇<br> <span style = "color: #ff0000;"><?php if(h($row['urg_ck'])==1){ print "至急"; }?> </span><br><br> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">閉じる</button> </div> </div> </div> </div> </div> </div> <?php }?>
・↑はページの一部分です。自分でページを確認したところ、JavaScriptの記述(Script部)はありませんでした。やはりこれが問題なのでしょうか(ブートストラップHPのイベントの説明文にはScriptでの記述があったので)。
・ページ先頭部(ヘッド部)には、ブートストラップの読み込みとして、以下記載があります。
<!-- BootstrapのCSS読み込み --> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- jQuery読み込み --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <!-- BootstrapのJS読み込み --> <script src="js/bootstrap.min.js"></script>
回答1件
あなたの回答
tips
プレビュー