Получить все значения из флажков?

Есть ли простой способ получить все значения нескольких флажков и сохранить их в базе данных? Пример;

<? if(isset($_POST['go'])){ $fruit = $_POST['fruit'].","; echo $fruit; // if you selected apple and grapefruit it would display; // apple,grapefruit, } ?> <form method="post"> Select your favorite fruit:<br /> <input type="checkbox" name="fruit" value="apple" id="apple" /><label for="apple">Apple</label><br /> <input type="checkbox" name="fruit" value="pinapple" id="pinapple" /><label for="pinapple">Pinapple</label><br /> <input type="checkbox" name="fruit" value="grapefruit" id="grapefruit" /><label for="grapefruit">Grapefruit</label><br /> <input type="submit" name="go" /> </form> 

Заранее спасибо!

Если вы даете флажкам одно и то же имя, заканчивающееся на [], значения возвращаются как массив.

 <input type="checkbox" name="fruit[]" value="apple" /> <input type="checkbox" name="fruit[]" value="grapefruit" /> 

Затем в PHP …

 if( isset($_POST['fruit[]']) && is_array($_POST['fruit[]']) ) { foreach($_POST['fruit[]'] as $fruit) { // eg. "I have a grapefruit!" echo "I have a {$fruit}!"; // -- insert into database call might go here } // eg. "apple, grapefruit" $fruitList = implode(', ', $_POST['fruit[]']); // -- insert into database call (for fruitList) might go here. } 

PS. прошу простить очевидную ошибку, что этот пример потенциально может вызвать крик «У меня есть яблоко» … Я не думал, чтобы сделать пример достаточно умным, чтобы определить, когда использовать «a», а когда использовать «an»: P

Назовите свой ввод следующим образом:

 <input type="checkbox" name="fruit[]" value="apple" id="apple" /><label for="apple">Apple</label><br /> <input type="checkbox" name="fruit[]" value="pinapple" id="pinapple" /><label for="pinapple">Pinapple</label><br /> 

Затем итерации на $ _POST ['fruit']:

 if(isset($_POST['fruit']) && !empty($_POST['fruit'])) foreach($_POST['fruit'] as $fruit) echo $fruit; 

Чтобы добавить к другим решениям …

implode и explode могут использоваться в PHP для преобразования вашего массива фруктов [] в разделенный запятыми список.

 $valueToStoreInDB = implode(",",$_POST['fruit']); $fruitAsAnArrayAgain[] = explode(",",$dbvalue); 

После того, как у вас есть список, разделенный запятыми, хорошим типом данных для представления флажков в MySQL будет SET , и вы можете вставить свой разделенный запятыми список прямо в свой оператор insert.