Intereting Posts
Как выполнить математику в sql-запросе для вычисления процентной разницы? Отключить быстрый просмотр в PDF-файле Как настроить PHP для отправки электронной почты? PHP для цикла – отображение данных в таблице "Preg_match (): Ошибка компиляции: несогласованные скобки" в PHP для допустимого шаблона Как я могу получить доступ к уникальному идентификатору в apache? Как я могу использовать простой раскрывающийся список в окне поиска GridView :: widget, Yii2? Использовать fgetcsv для файла с разделителями табуляции PHP Поиск массива для нескольких пар ключ / значение Система контроля доступа PHP Как получить информацию сертификата SSL с CURL в PHP? JSON_ENCODE многомерного массива, дающего разные результаты эхо в обратном порядке от mysql_fetch_assoc () <tbody> сбой в PHP Простой HTML DOM-парсер PhpStorm не получает соединения xdebug: журнал событий PhpStorm: не удается оценить выражение 'isset ($ _ SERVER )'

Ошибки проверки формы отображения рядом с каждым полем

Я работаю над простой формой контакта, написанной на php, и у меня почти все настроено так, как хотелось бы, потому что сейчас, все ошибки проверки отображаются в div в верхней части моей формы, и я хотел бы изменить ниже, поэтому они отображаются рядом с полем формы, которое вызвало ошибку, но я не уверен, как это сделать, поэтому я пришел к экспертам для некоторых советов.

PHP Validation Routine

$frm_valid = new Validate(); if(isset($_POST['submit'])){ $rules=array( array('Type'=>'Required','Var'=>$_POST['name'],'Msg'=>'Name field is required.'), array('Type'=>'Required','Var'=>$_POST['email'],'Msg'=>'Email address field is required.'), array('Type'=>'Email','Var'=>$_POST['email'],'Msg'=>'Your email address format is invalid.'), array('Type'=>'Required','Var'=>$_POST['subject'],'Msg'=>'Subject field is required.'), array('Type'=>'Required','Var'=>$_POST['message'],'Msg'=>'Message field is required.'), ); $result = $frm_valid->Valid($rules); if(is_array($result)){ // Print validation errors (if any) echo('<div"><b>The form cannot be submitted until the following errors are corrected.</b><ul>'); foreach($result as $key=>$val){ echo '<li>'.$val.'</li>'; } echo('</ul></div><br />'); } else { // Do something else. } } 

Формы HTML

 <form action="<? echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post"> <input type="text" name="name" value="" /> <br /> <input type="text" name="email" value="" /> <br /> <input type="text" name="subject" value="" /> <br /> <textarea name="message" cols="80" rows="7"></textarea> <br /> <input type="submit" name="submit" value="Send" /> </form> 

Для этого вам нужно изменить весь код !!! Структура, возможно, так:

 <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"> <ul> <li> <label> <span>Name</span> <input type="text" name="name" /> <small class="errorText"><?php echo ($_POST["name"] == "") ? "This field is required" : ""; ?></small> </label> </li> <li> <label> <span>Email</span> <input type="text" name="email" /> <small class="errorText"><?php echo ($_POST["email"] == "") ? "This field is required" : ""; ?></small> </label> </li> <li> <label> <span>Subject</span> <input type="text" name="subject" /> <small class="errorText"><?php echo ($_POST["subject"] == "") ? "This field is required" : ""; ?></small> </label> </li> <li> <label> <span>Message</span> <textarea name="message" cols="80" rows="7"></textarea> <small class="errorText"><?php echo ($_POST["message"] == "") ? "This field is required" : ""; ?></small> </label> </li> <li> <input type="submit" name="submit" value="Send" /> </li> </ul> </form> 

И CSS для этого же:

 * {font-family: Segoe UI, Tahoma;} h1 {font-weight: bold; font-size: 14pt; padding: 5px 0; margin: 5px 0; border: 1px solid #999; border-width: 1px 0;} input[type='submit'] {padding: 5px 20px; cursor: pointer;} ul, li {display: block; list-style: none; margin: 0; padding: 0;} ul li {padding: 5px 0;} ul li label span {display: block; cursor: pointer;} ul li label .errorText {color: #f00; font-weight: bold; vertical-align: top;} ul li label textarea {width: 300px;} 

Здесь вы можете увидеть живое демо: Демо

Обработка ошибок в PHP

Сохраняйте переменную ошибки для каждого поля. Сказать,

 <?php $error = array( "name" => "", "email" => "", "subject" => "", "message" => "" ); ?> 

Обновите их с ошибками и покажите их ниже.

 <?php if (empty()$_POST["email"]) $error["email"] = "Email is required!"; elseif (!isEmail($_POST["email"])) $error["email"] = "Not a Valid Email!"; ?> 

Если ошибок нет, он будет пустым, и пользователь не увидит сообщение об ошибке. В вашем Форм-коде вам нужно просто обновить этот способ:

 <small class="errorText"><?php echo $error["name"]; ?></small> <small class="errorText"><?php echo $error["email"]; ?></small> 

где в бэкэнд $error["email"] будет либо "This field is required" либо "Not a valid email address!" ,

Вы можете использовать следующий способ, если каждое поле имеет одну ошибку:

  <input name='myfield'> @if ($errors->has('myfield')) <span style="color:red;"> {{ $errors->first('myfield') }} </span> @endif