2013-11-01 4 views
0

Как вставить несколько значений флажка в базу данных? Вот мой код, он работает для переключателей, где есть только одно значение, но как добавить больше, если у меня есть флажки?Как вставить несколько значений флажка в базу данных?

PHP КОД:

if(isset($_POST['radio']) && 
    isset($_POST['checkbox'])){ 

    $radio = $_POST['radio']; 
    $checkbox= $_POST['checkbox']; 

    $sql = "INSERT INTO info(radio, checkbox)VALUES ('$radio', '$checkbox')"; 
    $result = mysql_query($sql); 

} 

HTML КОД:

<input type="radio" name="radio" value="1">1<br> 
<input type="radio" name="radio" value="2">2<br> 

<input type="checkbox" name="checkbox" value="1">1<br> 
<input type="checkbox" name="checkbox" value="2">2<br> 
<input type="checkbox" name="checkbox" value="3">3<br> 
<input type="checkbox" name="checkbox" value="4">4<br> 
<input type="checkbox" name="checkbox" value="5">5<br> 
<input type="checkbox" name="checkbox" value="6">6<br> 
+1

сделайте свое имя текстового поля как массив и используйте цикл при обработке опубликованных значений. –

ответ

0

основные использование PHP функции serialize() и unserialize()

2

Html

<input type="radio" name="radio" value="1">1<br> 
<input type="radio" name="radio" value="2">2<br> 

<input type="checkbox" name="checkbox[]" value="1">1<br> 
<input type="checkbox" name="checkbox[]" value="2">2<br> 
<input type="checkbox" name="checkbox[]" value="3">3<br> 
<input type="checkbox" name="checkbox[]" value="4">4<br> 
<input type="checkbox" name="checkbox[]" value="5">5<br> 
<input type="checkbox" name="checkbox[]" value="6">6<br> 

Php

использовать Еогеасп, чтобы получить все значения флажков

//Do the necessary coding and then 
if(!empty($_POST['checkbox'])) 
    foreach($_POST['checkbox'] as $key=>$value){ 
     if(trim($value) != ''){ 
     //Do insertion here 
     } 
    } 
} 
+1

Только одно, что нужно учитывать, IIRC, '$ _POST ['checkbox']' на самом деле не будет установлен, если отмечены флажки NO (они 'не отправляется с HTTP POST), поэтому может стоить сделать '! empty ($ _ POST [' checkbox '])' type check перед циклом. – CD001

0

изменить имена твоих флажков:

<input type="checkbox" name="checkbox[]" value="1">1<br> 
<input type="checkbox" name="checkbox[]" value="2">2<br> 
<input type="checkbox" name="checkbox[]" value="3">3<br> 
<input type="checkbox" name="checkbox[]" value="4">4<br> 
<input type="checkbox" name="checkbox[]" value="5">5<br> 
<input type="checkbox" name="checkbox[]" value="6">6<br> 

на PHP это сделать:

$radio = $_POST['radio']; 
$sql = 'INSERT INTO info(radio, checkbox)'; 

foreach($_POST['checkbox'] as $item){ 
    $sql .= "VALUES('$radio', '$item')," ; 
} 

$sql = trim($sql, ','); //remove the last ','; 
//performe all insert at once. 

Избегайте используйте функции mysql_ *, попробуйте PDO

Смежные вопросы