У меня есть страница отправки на php с формой html, которая указывает на ту же страницу. Я хотел бы иметь возможность проверить, не заполнены ли обязательные поля в форме, чтобы я мог проинформировать пользователя. Я хотел бы знать, как это сделать с помощью php и javascript. Однако я полагаю, что это обычная проблема, поэтому приветствуются любые другие ответы.






Сделайте проверку в публикации части вашего php
if (isset($_POST['save']))
{
$fields=array();
$fields['Nimi'] = $_POST['name'];
$fields['Kool'] = $_POST['school'];
$fields['Aadress'] = $_POST['address'];
$fields['Telefon'] = $_POST['phone'];
$fields['Email'] = $_POST['email'];
foreach ($fields as $key => $val)
{ if (trim($val)=='')
{ $errmsg=$key." is not filled!";
break;
}
}
}
if ($errmsg == '')
{ //do your saving here
exit();
}
if (!isset($_POST['save']) || $errmsg != '')
{ //show your form here
// and make it to return to the same page on submit
//<input name = "save" type = "submit" value = "Save" onclick = "return true;">
}
Что касается JS, вы должны проверить его перед отправкой. Обычно это включает привязку некоторой функции проверки к триггеру события onsubmit формы, и эта функция проверки будет состоять из некоторых тестов для каждого интересующего вас поля.
Большинство JS-библиотек имеют реализации проверки, которые сделают большую часть работы за вас, что звучит так, как будто это может быть хорошей идеей для вас. Поиск в Google "проверки на стороне клиента" даст бесконечные результаты, но это (я не зависящий от библиотеки, читайте и выбирайте сами) должно помочь вам начать работу *:
http://blog.jquery.com/2007/07/04/about-client-side-form-validation-and-frameworks/
http://tetlaw.id.au/view/blog/really-easy-field-validation-with-prototype/
http://dojotoolkit.org/book/dojo-book-0-4/part-4-more-widgets/forms/validation
* это учит вас ловить рыбу
Для дополнительной благодарности, как только вы узнаете, как это сделать на PHP и JavaScript из ответов Riho и annakata, создайте способ определения ограничения поля в единой форме, которая может быть отображена как JavaScript для проверки на стороне клиента и запущена на сервер.
Поскольку вам нужны и то, и другое (клиентская для удобства пользователя, серверная, потому что на данный момент мы уже не доверяем клиенту), кажется вполне приличной идеей поддерживать и то, и другое из единой инфраструктуры.
Библиотека LiveValidation вам очень поможет: http://www.livevalidation.com/
Можно ли также выполнить foreach ($ _ POST as $ k => $ v)?