0

ドロップダウンから複数の選択を取り、それらをテーブルの単一の列/行に挿入しようとしています。

次のようになります (ColumnB):

ColumnA | ColumnB | ColumnC
---------------------------
Stuff   | A, B, C | Stuff

これはドロップダウンです:

echo "<select NAME='SysName_1' SIZE='1' multiple tabindex='7'>\n";
echo "<option>Choose One or More</option>\n";

ドロップダウンにデータを入力するには、select ステートメントを使用します

$strSQL = "SELECT STATEMENT"; 

$rsSQL  = odbc_exec($connSQL,$strSQL) or die ('Error Executing Subsystems SQL');

$strOptions = "";

while ($row=odbc_fetch_array($rsSQL)){

   $id          = trim($row["SysName"]);
   $thing       = trim($row["SysDesc"]);
   $strOptions .= "<OPTION VALUE='$id'>$thing</option>";
}

echo $strOptions;

echo "</select>\n";

そして、これは私がインサートに持っているものです:

で区切られた複数の選択を結合する必要があります。正しいですか?

$SysName_1 = implode(',',$_POST['$SysName_1']); 

$SQLIN = 'INSERT INTO TABLE (COLUMNA) VALUES ($SysName_1)';

彼のコードは私がやりたいことをしているように見えるので、ここにあるものをやってみました(彼は望んでいませんが)複数の行ではなく単一の行に挿入される複数のドロップダウン値

しかし、それはまったく機能しません。サーバー ログに implode の無効な引数があり、insert ステートメントはその変数に対して空白になっています。

どんな助けでも大歓迎です。

4

1 に答える 1

1

フォーム内のname属性[]は、配列を示すために で終わる必要があります。これはうまくいくはずです

echo "<select NAME='SysName_1[]' SIZE='1' multiple tabindex='7'>\n";

しかし、注意が必要です。ユーザー入力を信用しないでください。あなたの値を$_POST直接データベースに挿入しないでください。最低でも必ず逃げる

于 2013-09-22T15:52:07.703 に答える