2016-10-30 4 views
0

私はブログとして使用されるシンプルなCRUDアプリケーションを作成しています。編集ページでは、各投稿のブログタイトルを含むドロップダウンメニューが必要です。オプション/ブログの投稿が選択されたら、「タイトル」と「メッセージ」の各フィールドを入力して編集し、データベースに保存することができます。PHP/MySQLのドロップダウンメニュー付きの事前入力フォーム?

ブログの投稿のタイトルを取得することができましたが、「タイトル」と「メッセージ」の各フィールドに値を設定して、そのオプションが選択されたときに編集できるようにしています。

私のデータベースには4つの行があります。行[0]はタイトル、行[1]はメッセージ、行[2]はタイムスタンプ、行[3]はIDです。

ありがとうございます。それは有り難いです。

<form action="edit.php" id="myform" method="post" autocomplete=off> 
     <input type="hidden" name="action" value="show"> 

     <p><label>Entry:</label><select name="blog"> 
     <?php 

      $result = mysqli_query($con, "SELECT * FROM blog"); 
      while ($row = mysqli_fetch_array($result)) { 
       $chosen = $row['bid']; 
      } 

      if (isset($_GET['blog'])) { 
       $id = $_GET['blog']; 
       $result = mysqli_query($con, "SELECT * FROM blog WHERE bid='$id'"); 
       $row = mysqli_fetch_array($result); 
      } 

      $result = mysqli_query($con, "SELECT * FROM blog"); 
      while ($row = mysqli_fetch_array($result)) { 
       $id = $row['bid']; 
       $title = $row['title']; 

       $selected = ''; 
       if ($id == $chosen) { 
        $selected = "selected='selected'"; 
       } 

       echo "<option value='$id' $selected>$title</option>\n"; 
      } 

     ?> 
    </select></p> 

    <p><label>Title:</label> <input type="text" id="newtitle" name="newtitle" value="<?php echo $row[0]; ?>"></p> 
    <p><label>Message:</label> <input type="text" id="newmessage" name="newmessage" value="<?php echo $row[1]; ?>"></p> 
    <p><input type="hidden" name="id" value="<?php echo $row[3]; ?>"></p> 

    <br><p><input type="submit" name="submit" value="Submit"></p> 
</form> 
+0

は、なぜあなたはループwhile' '二回blog'クエリから' SELECT *を実行し、別の2に結果をループしていますか?また、 'while'ループの外側で' $ row'変数を参照しているのはなぜですか? – Cully

答えて

0

私は自分自身で答えを幾分明らかにすることができました。おそらくこれを行う最も理想的な方法ではないかもしれませんが、潜在的にこれに固執している他の人のために - ここに私のコードです:

私の今の唯一の問題は、自分のオプションを選択したままにする方法を考え出すことです。

<form action="edit.php" id="myform" method="post" autocomplete=off> 
     <input type="hidden" name="action" value="show"> 

     <p><label>Entry:</label><select name="blog" onchange="window.location.href = blog.options[selectedIndex].value"> 
      <option selected disabled>Select One</option> 
     <?php 
      $result = mysqli_query($con, "SELECT * FROM blog"); 
      while ($row = mysqli_fetch_array($result)) { 
       $id = $row['bid']; 
       $title = $row['title']; 

       echo "<option value='edit.php?edit=$row[bid]'>$title</option>\n"; 
      } 

      if (isset($_GET['edit'])) { 
       $id = $_GET['edit']; 
       $result = mysqli_query($con, "SELECT * FROM blog WHERE bid='$id'"); 
       $row = mysqli_fetch_array($result); 
      } 

     ?> 
    </select></p> 

    <p><label>Title:</label> <input type="text" id="newtitle" name="newtitle" value="<?php echo $row[0]; ?>"></p> 
    <p><label>Message:</label> <input type="text" id="newmessage" name="newmessage" value="<?php echo $row[1]; ?>"></p> 
    <p><input type="hidden" name="id" value="<?php echo $row[3]; ?>"></p> 

    <br><p><input type="submit" name="submit" value="Submit"></p> 
</form> 
関連する問題