0

まず第一に、私はコーディングに関しては初心者なので、親切で辛抱してください:)

私がやろうとしているのは、MySQL テーブル (カテゴリ) から 2 行 ('ID'、'名前') を選択し、ドロップダウン リストに 1 行 ('名前') を入力し、フォームの送信時に渡すことです。もう一方 ('ID') を別のテーブルに。

これで、ドロップダウン リストにデータを入力できるようになりました。問題ありません。これに「ID」と「名前」の両方を入力して、この情報を保持するために使用している両方の変数に正しいデータが含まれていることをテストしました。しかし、情報を $_POST できないようです。

配列の間違った部分を見ているか、単に間違ったコードを使用していると思います。

これは、データベースのカテゴリの下に新しい製品を作成するためのコードです。

<?php

include 'db_config.php';

?>

<form enctype="multipart/form-data" action="insert.php" method="post">
<h3>Add New Product</h3>
Category:

<!-- START OF categories (table) names (row) SQL QUERY -->

<? $sql = "SELECT ID, name FROM categories";
$result = $mysqli->query($sql);

echo "<select name='category_name'>";
while ($row = $result->fetch_assoc()) {

    $cat_ID=$row['ID'];
    $cat_name=$row['name'];
    extract($row);
    echo "<option value='" . $cat_ID . $cat_name . "'>" . $cat_ID . " " . $cat_name ."</option>";
}
echo "</select>";

?>

<!--END OF SQL QUERY -->

<br>
Code: <input type="text" name="code"><br>
Name: <input type="text" name="prod_name"><br>
Description: <input type="textarea" name="description"><br>
Image: <input type="file" name="image"><br>
<input type="Submit">
</form>

今のところ、上記のコードをテストするために、insert.php スクリプトでこれをエコーアウトしています。これは、insert.php スクリプトの一部です。

echo "ID: " .  $_POST['$row["ID"]'] . "<br>";
echo "Category: " .  $_POST['$row["name"]'] . "<br>";
echo "Code: ". $_POST['code'] . "<br>";
echo "Name: " . $_POST['prod_name'] . "<br>";
echo "Description: ". $_POST['description'] . "<br>";
echo "Image: " . $_POST['image'] . "<br>";

上の最後の行は気にしないでください。私はこれが $_FILES である必要があることを知っており、これをすべてカバーしています。問題が解決されるまで、テーブルへのデータの書き込みを停止しました。完全なスクリプトでは、画像は「/images」にアップロードされ、その場所はテーブルに保存されています。これはすべてうまくいきます。

問題は最初の 2 行にあり、返されたときに空白になるためです。同じ変数を呼び出してドロップダウンリストにデータを入力しているため、情報を正しく保存していると思いましたが、 $_POST できないようです。

それは理にかなっていますか?

私を助けてくれたすべての人に感謝します。いつの日か、私はあなたと同じくらい良くなります....願っています。

ティア

スマーフ。

4

3 に答える 3

0
echo "ID: " .  $_POST['$row["ID"]'] . "<br>";
echo "Category: " .  $_POST['$row["name"]'] . "<br>";

$row["ID"]これらの名前のフォーム要素がフォーム (および)にありません$row["name"]。とにかく、これらはフォーム要素の非常に奇妙な名前です。作成しているフォーム要素は次のとおりです。

<select name='category_name'>

したがって、選択した値は次のように投稿されます。

$_POST['category_name']

そのoption要素にselectは、ID と名前の組み合わせである値があるように見えます。

"<option value='" . $cat_ID . $cat_name . "'>"

したがって、ユーザーが の値を持つオプションを選択すると、1SomeName$_POST['category_name']と評価され'1SomeName'ます。

オプション値に IDと名前の組み合わせを使用するのは確かに型破りですが、うまくいくはずです。問題は、有用であるために解析する必要がある複合文字列があることです。一般的には、ID を値として使用し、名前を表示として使用するだけです。コード全体で使用する必要があるのは IDだけです。

于 2013-07-23T15:22:18.313 に答える