podenik пишет:Здраствуйте
Давно не занимался php. Подскажите как правильно обработать форму с тремя chekbox’сами
Что бы запись в базу данных в три разных таблицы CODE ( html):
скопировать код в буфер обмена
<form method="POST" action="/all/connect2.php"> <p><input type="checkbox" name="option1" value="1" id="qwe1" >соглашаюсь с правилами</p> <p><input type="checkbox" name="option2" value="1" id="qwe2"> Отметка об отсутствии притензии</p> <p><input type="checkbox" name="option3" value="1" id="qwe3"> Соглашаюсь на обработку данных</p> <input type="text" size="30" placeholder=" ФИО"> <input type="text" size="30" placeholder=" Компания"> <button onclick="post_query()" >Включить</button> </form>
Добрый день!
1.Вы потеряли атрибутуны name в полях input.
Не понятно про три таблицы и как должны работать три чекбокса.
2.Допуская, что JS функция post_query() не проверяет заполнение формы,
а только отправляет реквест, делаем вывод формы и контроль данных в PHP,
предполагая, что все поля формы обязательны для заполнения.Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Test form in all/connect2.php</title> </head> <body> <? $view_form=true; $checkboxLabel = array("Соглашаюсь с правилами!","Отметка об отсутствии притензии","Соглашаюсь на обработку данных"); $input = array("FIO"=>"ФИО","company"=>"Компания"); { foreach($checkboxLabel as $i=>$label) { $n=$i+1; $name="option".$n; if(!$_POST[$name]) $err[]=$label; } foreach ($input as $name => $placeholder) { if(!$_POST[$name]) $err[]=$placeholder; } if(!$err) { $view_form=false; /* запись в базу данных в три разных таблицы м.б. сообщение про ЭТО */ echo "OK!"; } } //--------------------------------------------- if($view_form) { ?> <form method="POST" action="all/connect2.php"> <? foreach($checkboxLabel as $i=>$label) { $n=$i+1; $name="option".$n; $checked=$_POST[$name]?"checked":""; echo <<<EOF <p><input type="checkbox" name="$name" value="1" id="qwe$i" $checked >$label</p> EOF; } foreach ($input as $name => $placeholder) { echo <<<EOF <input type="text" name = "$name" size="30" placeholder="$placeholder" value="{$_POST[$name]}"> EOF; } ?> <button onclick="post_query()" >Включить</button> </form> <? if($err) { echo "<hr>Ошибки! Не введены данные:<br>"; foreach ($err as $msg) echo "$msg<br>"; } } ?> </body> </html>
Удачи!(Отредактировано автором: 22 Мая, 2020 - 11:41:26)
|