Intereting Posts
Как создать параметризованное заявление об обновлении базы данных в Yii для предложения IN ()? Класс запроса Doctrine не в каталоге сущностей Как использовать именованные каналы в PHP между различными функциями или даже разными процессами без fork? NOT PHP vs JS Comparison: Могу ли я что-либо сделать на PHP, что можно сделать с помощью JS? Отправка нескольких флажков Получить содержимое страницы, требующее аутентификации в PHP Создание многомерного массива из данных в CodeIgniter любой хороший php-учебник о том, как отправлять sms на телефоны? Почему putenv () необходим для уже заданной переменной среды? Предупреждение: file_get_contents: не удалось открыть поток: достигнут предел перенаправления, прерван Насколько последователен FILTER_VALIDATE_EMAIL? Изменение заголовка CCK для формы Предупреждение: mysqli_fetch_assoc () ожидает, что параметр 1 будет mysqli_result, boolean задан в C: \ xampp \ htdocs \ xyz \ userpanel.php в строке 71 Я хочу интегрировать аутентификацию карты Aadhaar в PHP. Я пробовал этот код для доступа к API, но я не могу получить никакого ответа Динамические размеры пользовательских изображений PHP WordPress

Сделать массив из формы флажка

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

<form action="signup.php" method="POST"> Name: <input type="text" name="name" /> <br /> Username: <input type="text" name="username"> <br /> Password: <input type="password" name="pwd" /> <br /> Email: <input type="text" name="email" /> <br /> <p>By filling out this we will be able to find news articles that will interest you</p> <br /> Politics<input type="checkbox" name="interest[]" value="Politics" /> <br /> Entertainment<input type="checkbox" name="interest[]" value="Entertainment" /> <br /> Tech <input type="checkbox" name="interest[]" value="Tech" /> <br /> Health<input type="checkbox" name="interest[]" value="Health" /> <br /> Living<input type="checkbox" name="interest[]" value="Living" /> <br /> Travel <input type="checkbox" name="interest[]" value="Travel" /> <br /> World<input type="checkbox" name="interest[]" value="World" /> <br /> Leisure<input type="checkbox" name="interest[]" value="Leisure" /> <br /> Finance<input type="checkbox" name="interest[]" value="Finance" /> <br /> Celebrity Gossip<input type="checkbox" name="interest[]" value="Gossip" /> <br /> Movies<input type="checkbox" name="interest[]" value="Movies" /> <br /> Sports<input type="checkbox" name="interest[]" value="Sports" /> <br /> <input type="submit" value="Submit"> </form> 

как мы будем использовать php-массив, используя эти данные?

Solutions Collecting From Web of "Сделать массив из формы флажка"

HTML-разметка:

 <form method="get"> <input type="checkbox" name="options[]" value="Politics"/> Politics<br/> <input type="checkbox" name="options[]" value="Movies"/> Movies<br/> <input type="checkbox" name="options[]" value="World "/> World<br/> <input type="submit" value="Go!" /> </form> 

и в php-коде:

 $checked = $_GET['options']; for($i=0; $i < count($checked); $i++){ echo "Selected " . $checked[$i] . "<br/>"; } 

использовать это:

 <input type="checkbox" name="mydata[checkbox1]"> Option 1 (politics etc) <input type="checkbox" name="mydata[checkbox2]"> Option 2 <input type="checkbox" name="mydata[checkbox3]"> Option 3 

затем получите доступ к $ _POST ["mydata"] как массив

Извините, вышли до того, как я закончил писать 🙁

Всего несколько улучшений в уже опубликованных предложениях:

Используйте ярлыки для формы:

 <label for="check_politics">Politics</label> <input type="checkbox" name="intrests[]" id="check_politics" value="Politics"/> 

Использование ярлыков для улучшения формы блестяще на мой взгляд 🙂 Устанавливает их отображение, чтобы блокировать, если вы хотите, чтобы они получили разрывы строк.

И используйте foreach для его прокрутки на сервере:

 $intrests = $_POST['intrests']; foreach($intrests as $intrest) { echo $intrest . " is my intrest"; } 

Лучший способ, которым я нашел это (по крайней мере для меня), состоял в том, чтобы преобразовать значения флажка в массив, чтобы манипулировать им так, как я хотел, с помощью взрыва и взрыва:

 <form action="thispage.php" method="post"> (the previous fields here) <input type="checkbox" name="interests[]" value="Politics <input type="checkbox" name="interests[]" value="Entertainment <input type="checkbox" name="interests[]" value="Tech <input type="checkbox" name="interests[]" value="Health <input type="checkbox" name="interests[]" value="Living <input type="checkbox" name="interests[]" value="Travel <input type="checkbox" name="interests[]" value="World etc... <input type="submit" value="Submit"> </form> 

И php (должен идти до формы):

 <?php if (isset($_POST['interests'])) { $interests_str = implode(" ", $_POST['interests']);// converts $_POST interests into a string $interests_array = explode(" ", $interests_str);// converts the string to an array which you can easily manipulate } for ($i = 0; $i > count($interests_array); $i++) { echo $interests_array[$i];// display the result as a string } ?> 

Преимущество этого скрипта заключается в том, что вы можете получить доступ к $ interest_array, когда захотите, в вашем документе в качестве общего массива.

эй, я упростил создание флажков, а также переключателей в любой форме php. Единственное, что я использую Framework Codeigniter MVC.

Вот определение функции, которое вы можете вставить в свою общую модель или любой вспомогательный файл.

 function createOptions($fieldName, $labelsArray=array(), $selectedOption, $fieldType,$valuesArray = array()) { $returnString = ''; if(count($valuesArray)!=count($labelsArray)) $valuesArray=$lebelsArray; if ($fieldType === 'checkbox') { for ($i=0;$i<count($labelsArray);$i++) { $returnString.='&nbsp&nbsp&nbsp<input type="checkbox" name=' . $fieldName.' value='.$valuesArray[$i].' id='.$valuesArray[$i]; if(in_array($valuesArray[$i], $selectedOption)){ $returnString.=' checked="checked" '; } $returnString.=' />&nbsp&nbsp<label>'.$labelsArray[$i].'</label>'; } } if ($fieldType === 'radio') { for ($i=0;$i<count($labelsArray);$i++) { $returnString.='&nbsp&nbsp<input type="radio" name=' . $fieldName.' value='.$valuesArray[$i].' id='.$valuesArray[$i]; if($valuesArray[$i]== $selectedOption) $returnString.=' checked="checked" '; $returnString.=' /><label>'.$labelsArray[$i].'</label>'; } } return $returnString; } 

И вы должны вызвать эту функцию в файле вида,

 <?php echo $this->common_model->createOptions('userHobbies[]', $hobbyOptions, $userHobbies, 'checkbox'); ?> 

Первый параметр – это имя поля флажка или поля радио, которое всегда будет одинаковым для всех параметров для обоих случаев. Во-вторых, это массив меток, третий – это параметры, которые будут показывать эти параметры, указанные при загрузке формы. Четвертое – это тип поля, который будет строкой как «флажок» или «радио». Пятый будет массивом значений, который, если присутствует, будет содержать значения для меток в том же порядке, что и метки. Если его отсутствует, массив меток будет разрисован как массив значений.

 //options[] makes it an array <form method="get"> <input type="checkbox" name="options[]" value="Politics"/> Politics<br/> <input type="checkbox" name="options[]" value="Movies"/> Movies<br/> <input type="checkbox" name="options[]" value="World "/> World<br/> <input type="submit" value="Go!" /> </form> 

Вы можете получить доступ к этому массиву с помощью $_GET['options']

Попробуйте Print_r( $_GET['options']) ; чтобы увидеть значения в нем.

 <form action="hitungmakan.php" method="post"><center> <table border="1" width="400" cellpadding="3"> <tr><td colspan="5" align="center">Menu Makan dan Minum</td></tr> <tr><td align="center">Makanan</td> <tdalign="center">Minuman</td></tr> <tr> <td><input name="makanan[]" type="checkbox" value="nasgor">nasi goreng $.7000<br> <input name="makanan[]" type="checkbox" value="wuduk">wuduk $.6000<br> <input name="makanan[]" type="checkbox" value="pecel">pecel $.9000</td> <td><input name="minuman[]" type="checkbox" value="tehbotol">teh botol $.3000<br> <input name="minuman[]" type="checkbox" value="campur">es campur $.7000<br> <input name="minuman[]" type="checkbox" value="jeruk">es jeruk $.6000</td> </tr> <input type="submit" value="Total" name="total"> <input type="reset" value="Batal">