2016-07-14 4 views
-1

にチェックボックスのループした値を挿入する方法のチェックボックスのループした値は、異なる値を持つ3つのチェックボックスが表示され、私はforeachで3ずつPHP - 私はここにある単一のmysql_query

<?php foreach ($times as $time) { ?> 
<input type="checkbox" name="b" id="b1" value=" <?php echo $time->format('h:i a'), '-', $time->add($interval)->format('h:i a'); ?>"> 
<?php } ?> 

を持っているのは、仮定しよう。 例えば、私は2箱を調べました。クエリは2回実行する必要がありますか?または、2つのチェックされた値をdbに挿入する必要があります。

$b = $_POST['b']; 
$ins = mysql_query("INSERT INTO ehr_schedule3(`sched3_time) VALUES('$b')"); 

どうすればいいですか?

+0

ブラウザがこの '名前のようにPHPに 'B'年代の配列を返してください= "b []" ' – RiggsFolly

+0

チェックされたチェックボックスだけがブラウザからPHPスクリプト – RiggsFolly

+0

に返されることを覚えておいてください。 :) – Noobster

答えて

1

すべてのチェックボックスは同じ名前なので、$_POST['b']は最後の値を取得します。複数の値を取得するには、配列形式の名前を使用する必要があります。

<?php foreach ($times as $time) { ?> 
<input type="checkbox" name="b[]" value="<?php echo $time->format('h:i a'), '-', $time->add($interval)->format('h:i a'); ?>"> 
<?php } ?> 

を次に$_POST['b']は、すべての値の配列になります。

foreach ($_POST['b'] as $b) { 
    $b = mysql_real_escape_string($b); 
    $ins = mysql_query("INSERT INTO ehr_schedule3(`sched3_time) VALUES('$b')"); 
} 

あなたが同じIDを持つ複数の要素を持つべきではないので、私はまたid="b1"を取り出しました。入力が実際にIDを持つ必要がある場合(なぜですか?)、おそらく配列インデックスをIDの一部として使用することで、入力を異なるものにする必要があります。

+0

こんにちは、ありがとう。私がそれぞれの定義済みの値を持っている場合、なぜ 'mysql_real_escape_string'を使うのだろうと思っていますか? – Noobster

+0

ブラウザが送信するものを制御することはできません。事前に定義された値の1つである必要はありません。 – Barmar

0

あなたは、BSをカウントするカウンターを置くことができます:あなたの挿入機能で、その後

<?php 
$count = 0;//to count the rows if they are dynamic 
foreach ($times as $time) { 
?> 
<input type="checkbox" name="b<?php echo $count; ?>" value="<?php echo $time->format('h:i a'), '-', $time->add($interval)->format('h:i a'); ?>"> 
<?php 
$count++; 
} 
?> 
<input name="rowCount" type="hidden" value="<?php echo $count; ?>" /><!-- to store number of inputs --> 

$b_count = $_POST['rowCount'];//to store count of b 
$my_quries = []; 
for($i=0; $i<$b_count; $++){ 
    $b = $_POST['b'.$i];//get the corresponded b from POST req 
    $my_quries[] = mysql_query("INSERT INTO ehr_schedule3(`sched3_time) VALUES('$b')"); 
    //you can execute the query in this loop or another one as you like 
} 
関連する問題