Здравствуйте! Я в php новичок, но возникла задача - сделать форму и обработать данные, который пользователь в нее вводит. Пример html кода формы Код (Text): <form action="form.php" method="post" name="form"> <ul> <li> <p> <input name="check[1]" type="checkbox" value="item1">item1 <input name="value[1]" type="text" value="1" placeholder="Кол-во"> </p> </li> <li> <p> <input name="check[2]" type="checkbox" value="item2">item2 <input name="value[2]" type="text" value="1" placeholder="Кол-во"> </p> </li> <li> <p> <input name="check[3]" type="checkbox" value="item3">item3 <input name="value[3]" type="text" value="1" placeholder="Кол-во"> </p> </li> </ul> </form> Так же есть стандартная форма (имя, почта)(но думаю это не важно) Задача: Если человек выбрал какой-то чекбокс или несколько (всего их 20, не стал полный код писать, все по тому же принципу как и в коде выше) надо вывести значение чекбокса(value) и вывести количество из поля value, что получилось например: item1 - 2 шт., item3 - 1 шт. Потом эти данные должны обработаться скриптом и отправиться автоматически на почту(до реализации этого еще не дошел, сейчас в первую очередь нужно понять как реализовать задачу по обработке введенных данных, что бы соответствовал checkbox количеству)
Вроде решилось на другом форуме Код (Text): // Проверим что хоть один чекбокс выбран if (count($_POST['check'])) { // перебор foreach ($_POST['check'] AS $key=>$value){ echo '<br>'. $value .' - '. $_POST['value'][$key] ; } } else echo "<br> Вы ничего не выбрали";
@nexxer13, чекбоксы могу пригодиться на стороне клиента, но по сути они тут не очень-то и нужны, т.к. одно поле может нести информацию и о товаре, и о его количестве. HTML: <form action="#" method="post"> <label>ФИО</label> <input type="text" name="customer" placeholder="ФИО"> <label>Пивасик <input type="checkbox"> <input type="number" name="item[Пиво]" placeholder="Кол-во" disabled> </label> <label>Вискарь <input type="checkbox"> <input type="number" name="item[Вискарь]" placeholder="Кол-во" disabled> </label> <label>Боярышник <input type="checkbox"> <input type="number" name="item[Боярышник]" placeholder="Кол-во" disabled> </label> <input type="submit" value="Погнали!"> </form> Набросал рабочий пример в песочнице
Плавненько переходим на следующий сабж) Все теперь выводится как надо, написал так же код отправки на почту, передается но с проблемой: передается только один чекбокс и количество его, причем почему то крайний выбранный с конца, хотя просто при выводе результатов все работает как надо. Вот код всего моего php файла: Код (Text): <html> <head> <title>Тестируем PHP</title> </head> <body> <?php $firstname = $_POST[firstname]; $mail = $_POST[mail]; $message = $_POST[message]; echo "Имя: $firstname\n"; echo "<br>Email: $mail\n"; echo "<br>Сообщение: $message\n"; // Проверим что хоть один чекбокс выбран if (count($_POST['check'])) { // перебор foreach ($_POST['check'] AS $key=>$value){ echo '<br>'. $value .' - '. $_POST['value'][$key]; } } else echo "<br> Вы ничего не выбрали"; mail("example@mail.ru", "Заявка с сайта", "Имя:".$firstname. "\r\nE-mail: ".$mail. "\r\nСообщение: ".$message. "\r\nТовары: ".$value.' - '. $_POST['value'][$key]); ?> </body> </html> Почему только последний чекбокс отправляется? Тестирую на open server, если важно.
Когда вы проверяете, что "хоть один чекбокс выбран", то догадались же использовать цикл. --- Добавлено --- Судя по этой фразе, вы входите в группу разработчиков PHP. Что там планируется в новых релизах?