0

プロジェクトのドロップダウン リストで選択したオプションの詳細を表示しようとしています。

MYSQLi クエリから入力されたドロップダウン リストがあります。ユーザーがオプションを選択し、関連する値がデータベースから取得されてユーザーに表示されるようにします。

動的に入力されるドロップダウンリストは、人物の「FirstName」(テーブル名) 用であり、ユーザーがドロップダウンリストから名前を選択すると、その人物のレコードが表示されるようにします。

以下のコードは、ドロップダウン リストを動的に設定するためのものです。ユーザーはボタンをクリックして次のページに進み、結果を含むテーブルを作成します。エラーはありませんが、必要な結果もありません。

ドロップダウンコード

<!DOCTYPE>
<html>
<head>

<title>Update Data</title>
</head>

<body>

<form name="form_update" method="post" action="update_test.php">

<?php
$con=mysqli_connect("localhost","root","","ismat_db");
//============== check connection
if(mysqli_errno($con))
{
echo "Can't Connect to mySQL:".mysqli_connect_error();
}



//This creates the drop down box

echo "<select name= 'FirstName'>";
echo '<option value="">'.'--- Please Select Person ---'.'</option>';
$query = mysqli_query($con,"SELECT FirstName FROM persons");
$query_display = mysqli_query($con,"SELECT * FROM persons");

while($row=mysqli_fetch_array($query))
{
echo "<option value='". $row['id']."'>".$row['FirstName']
 .'</option>';

}

echo '</select>';

?>&nbsp;<input type="submit" name="submit" value="Submit"/>
</form><br/><br/>
<a href="main.html"> Go back to Main Page </a>
</body>
</html>

コードを表示

<title>Update Data</title>
</head>

<body>
<!--<table>
<tr>
<td align="center"> From Database </td>
</tr>
<tr>
<td>
    <table border="1">
        <tr>
            <td>First Name</td>
            <td>Last Name </td>
            <td> Gender </td>
            <td> Subject </td>
            <td> Hobbies </td>
        </tr>
     -->
  <?php 
$con=mysqli_connect("localhost","root","","ismat_db");
if(mysqli_errno($con))
{
echo "Can't Connect to mySQL:".mysqli_connect_error();
}


//$name = mysqli_real_escape_string($con,$_POST['select']);
 // $fetch = mysqli_query($con,"SELECT * FROM persons WHERE FirstName='".$name."'");
//  $row_display=mysqli_fetch_assoc($fetch);

if(isset($_POST['select']))
{

$name = mysqli_real_escape_string($con,$_POST['select']);
  $fetch = "SELECT * FROM persons WHERE FirstName = '".$name."'";
 $result = mysqli_query($con,$fetch);

 //display the table
 echo '<table border="1">'.'<tr>'.'<td align="center">'. 'From Database'. '</td>'.'</tr>';
echo '<tr>'.'<td>'.'<table border="1">'.'<tr>'.'<td>'.'First Name'.'</td>'
.'<td>'.'Last           Name'.'</td>'.'<td>'. 'Gender' .'</td>'.'<td>'
. 'Subject'. '</td>'.'<td>'. 'Hobbies' .'</td>'.'</tr>';
while($data = mysqli_fetch_row($result))
{
echo ("<tr><td>$data[0]</td><td>$data[1]</td><td>$data[2]</td><td>$data[3]</td><td>$data[4] </td></tr>");
 }

  echo '</table>'.'</td>'.'</tr>'.'</table>';
    }

   ?>
   <!--
   </table>
   </td>
   </tr>
   </table>
   -->
   <br/>
   <a href="update.php"> Go back to Main Page </a>
   </body>
   </html>
4

3 に答える 3

0

候補が少ない

  1. クエリで、オプションの値として設定した ID を追加します

    echo "<option value='". $row['id']."'>".$row['FirstName']

    したがって、次のように更新します。
    $query = mysqli_query($con,"SELECT id,FirstName FROM persons");

  2. 間違った をチェックしていPOST var 'select'ます。以下で使用した選択フィールドの名前である「FirstName」である必要があります。

    echo "<select name= 'FirstName'>

    したがって、次のコードの代わりに:

    if(isset($_POST['select'])) { $name = mysqli_real_escape_string($con,$_POST['select']); $fetch = "SELECT * FROM persons WHERE FirstName = '".$name."'"; $result = mysqli_query($con,$fetch);

  3. また、where句では、firstNameではなくidをチェックする必要があることに注意してください

    代わりに、この修正されたコードを使用してください。

    if(isset($_POST['FirstName'])) { $name = $_POST['FirstName']; $fetch = "SELECT * FROM persons WHERE id = '".$name."'"; $result = mysqli_query($con,$fetch);

于 2013-06-19T16:47:28.573 に答える