2

現在、3 つのドロップダウン オプション ボックスと 1 つの送信ボタンがあるフォームを作成しようとしています。3 つのドロップダウン ボックスはすべてデータベースから取り込まれており、選択したオプションを新しいクエリに含めて印刷したいと考えています。この例では、1 つのドロップダウンのみを示しています

PHP コード

// Create connection
$con=mysqli_connect('', '', '', '');

// Check connection
if (mysqli_connect_errno($con))
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$course_dropdown ="";
$query_course = "SELECT * FROM course";
$result_course = mysqli_query($con,$query_course) or die(mysqli_error());

while($row = mysqli_fetch_assoc($result_course))
{
    $course_dropdown .= "<option value='{$row['CourseName']}'{$row['CourseName']}           </option>";
}

上記は、ドロップダウン リストの作成に使用されるコードです。

HTML

<form="index.php" method="post">
<select name="Course"><?php echo $course_dropdown; ?></select>
<input name="button" value="Submit" type="submit">

どのように進めたらよいのか途方に暮れ、さまざまな手法を試してみましたが、答えが見つかりません。

最新の試み

$course = mysqli_real_escape_string($con, $_POST['Course']);
$query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = $course"); 

これはエラーをもたらしました

注意: 未定義のインデックス: C:\Users\seanin\Desktop\xampp\htdocs\index.php の 33 行目のコース

そのため、提案どおりに編集しましたが、まだエラーがあり、小さなものが欠けている可能性があります。

// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$course_dropdown ="";
$query_course = "SELECT * FROM course";
$result_course = mysqli_query($con,$query_course) or die(mysqli_error());

while($row = mysqli_fetch_assoc($result_course))
{
$course_dropdown .= "<option value='{$row['CourseName']}'>{$row['CourseName']}</option>";
} 

if ($_POST['button'] == 'Submit') {
$course = mysqli_real_escape_string($con, $_POST['Course']);
$query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = $course"); 
}

まだこのエラーがあります

注意: 未定義のインデックス: C:\Users\seanin\Desktop\xampp\htdocs\index.php の 30 行目のボタン

送信ボタンの問題


ほぼ完了しました。これまでのすべてのヘルプに感謝します。

結果を取得して印刷するにはどうすればよいですか???

4

2 に答える 2

2

SQL インジェクションについてお読みください。彼らはあなたの人生を破壊することができます。

次の行で「コース」にアクセスしようとしていると思いますが、定義されていません。

$course = mysqli_real_escape_string($con, $_POST['Course']);

ページを送信できますか?HTML フォームにエラーがあります:<form="index.php"は有効な HTML タグではないため、ページを送信できません。つまり、使用している正確なコードを投稿した場合です。フォームは次のようになります。

<form action="index.php" method="post">
<select name="Course"><?php echo $course_dropdown; ?></select>
<input name="button" value="Submit" type="submit">
</form> <!-- and don't forget the closing tag -->

次のようにして、ページが送信されたかどうかを確認できます。

if ($_POST['button'] == 'Submit') {
    $course = mysqli_real_escape_string($con, $_POST['Course']);
     // please note the missing single quotes, and please read the first line of my answer
    $query = mysqli_query($con,"SELECT * FROM course_module WHERE CourseName = '$course'");
}

次の行にも無効な HTML 構文があります。

$course_dropdown .= "<option value='{$row['CourseName']}'{$row['CourseName']}           </option>";

の形式<option>は次のとおり<option value="value">label</option>です。

于 2013-03-17T15:55:17.113 に答える
2

ドロップダウンが機能しない理由が見つからない " > " while ループ内の行をこれに置き換えます

$course_dropdown .= "<option value='{$row['CourseName']}'>{$row['CourseName']}</option>";
于 2013-03-17T15:56:58.150 に答える