2017-01-29 3 views
0

助けてください。私はこれがシンプルであることを知っていますが、私はそれに慣れており、それを正しく得ることはできません。フィールドに複数の値を入力し、各値を行として送信してください

私はユーザーが複数の値を選択できるフィールドを持つフォームを持っています。値はコンマで区切られています。

フォームを送信し、フィールドに値ごとに個別の行を挿入します。

文字列の値を "、"で爆発させ、個々の値で終わることができます。私は各値のために挿入するSQLを取得することはできません。

例:A、B、C 私が爆発すると三つの値は、Bは、次いでC 欲しい行1 field.value = Aのようにフィールドを3つの値を送信するためのフォームをエコーすることができる: ユーザーの3つの値を選択します行2フィールド。値= B行3フィールド。値= C.

(ユーザーは休暇のためのフォームを記入しています。複数の日付を選択し、フィールド内の日付ごとに1つのレコードが必要です。コンマで区切って)

$dates = (explode(",",$str)); 

foreach ($dates as $value) { 
    $insertSQL = "INSERT INTO tbl_test (Date) VALUES ($value)"; 
} 

ご協力いただければ幸いです。あなたが提出する複数の値を持っている場合は、クエリを準備している

+0

<form action="anything"> <input type="text" name="param[]" value="A"> <input type="text" name="param[]" value="B"> <input type="text" name="param[]" value="C"> <input type="submit" value="Submit"/> </form> 

DBに起こるのか?どの値が追加されていますか? –

+0

タイプを確認しましたか?あなたが正しいタイプで保存しようとしていることを確認してください.DDBBは整数を期待していて、値はintです。 –

答えて

-1

を試してみてください。 PHP

$data = $_POST["param"]; 
if(!empty($data)){ 
for($i = 0; $i < count($data); $i++) { 
    $data[$i]; // here is A,B,C 
    //Your Query to insert 
} 
} 
+0

このソリューションの問題点は、柔軟ではないことです。ここではハードコードされた値があり、値の数は制限されています。 –

+0

フォームでは、入力タグに任意のデータを入力できます。 私はA、B、Cのように指定しました。 –

+0

しかし、動的入力(js)をコンマで区切って追加するほど柔軟ではありません。この場合、入力を1つずつ追加する必要があります。 –

0

ありがとうしかし、あなたはそれを提出していないようだ。これ

$dates = (explode(",",$str)); 
foreach ($dates as $value) 
{ $insertSQL = "INSERT INTO tbl_test (Date) VALUES ('$value')"; 
    mysqli_query(your_db_connection_object, $insertSQL); 
} 
+0

1つのクエリを必要とし、それをすべてのSQLに対して提出するには、 '$ dates =(explode("、 "$ str)); foreach($ dates as $ value) { $ insertSQL。= "INSERT INTO tbl_test(日付)VALUES( '$ value');"; } mysqli_query(your_db_connection_object、$ insertSQL); ' – recycler

+0

この実装はsql saveではなく、SQLインジェクションに使用できることに注意してください。あなたの入力を消毒してください。 mysql_escape ...関数をチェックしてください。 – recycler

関連する問題