Всем привет. Прошу помощи вот с какой ситуацией. У меня есть форма, в которой около 70 полей. Все это отправляется обработчику и соответственно получается, что нужно принять 70 переменных. Желания для каждой переменной делать PHP: if (isset($_POST['date'])) {$date = $_POST['date']; if ($date == '') {unset($date);}} абсолютно нету. Скажите, пожалуйста, каким способом можно сделать так, чтобы все POST-переменные стали обычными переменными и сохранили свои имена?
а какая разница переменные они или всё ещё в массиве $_POST ?! всё равно от проверки на валидность не избавит. а чтобы не обращаться к каждой по имени и если порядок значений в массеве пост известен, то это можно сделать как-то так: $params = array(); Код (Text): foreach ($_POST[] as $postid) { if (isset($postid) && !empty($postid)) { $params[] = $postid; } }
PHP: $data = array(); foreach($_POST as $key => $value){ if($key == 'submit') continue; // пропускаем кнопку, естественно если имя кнопки submit $data[$key] = $value; } Вот так вот решил проблему, спасибо всем большое
И? Просто переписал всё из $_POST в $data. А смысл? Можно и с $_POST работать точно также как с $data... Просто в обработчике точно также $_POST['submit'] пропускать. Или можешь его вообще unset-ить, если он тебе не нужен: unset($_POST['submit']); и будет в $_POST тоже самое, что и в твоём $data. А можешь в самой форме в кнопке не указывать атрибут name - у тебя тогда и изначально в массиве $_POST не будет элемента этого: <input type="submit" value="Отправить" /> Форма отправиться точно также, а лишнего элемента в массиве $_POST, соответствующего этой кнопке - не будет.