2016-04-12 6 views
0

поэтому я создал форму HTML, в которой хранятся данные в базе данных, а затем я их беру, и сегодня я хотел сделать ее более продвинутой.HTML form submit button check

Так у меня есть форма, которая выглядит следующим образом (не для входа в систему, просто для примера)

<form method="post" action="process.php" autocomplete="off"> 

Name: <input type="text" name="name"/> 
Surname: <input type="text" name="surname" /> 
Phone: <input type="text" name="phone" /> 

<input type="submit" /> 

В process.php Он хранит данные в базе данных, чтобы позже я могу использовать их. Я хочу сделать это, если один или несколько из них пустые, когда вы нажимаете кнопку отправки, отображается ошибка типа «Обязательно заполнять все поля», но если вы все сделали, она просто представляет и хранит данные в базе данных.

Я думал, что я могу сделать с этим видом кода

<?php 
$required = array('name', 'surname', 'phone'); 

$error = false; 
foreach($required as $field) { 
    if (empty($_POST[$field])) { 
    $error = true; 
    } 
} 

if ($error) { 
    write and error message and don't react to submit 
} else { 
    if everything is done, allow to submit 
} 
?> 

Как я могу заставить его работать, что вы не можете нажать кнопку отправить, пока вы закончите все нету поля?

Спасибо!

+0

Уважаемый Toms simpal положить в <входной тип = "текст" имя = "имя" требуется /> –

ответ

0

Добавить имя атрибута для кнопки набора, необходимого для всех требуемых полей

<input name="submit" type="submit" /> 

в PHP

<?php 
if(isset($_POST['submit'])){ 
$required = array('name', 'surname', 'phone'); 

$error = false; 
foreach($required as $field) { 
    if (empty($_POST[$field])) { 
    $error = true; 
    } 
} 

    if ($error) { 
     write and error message and don't react to submit 
    } else { 
     if everything is done, allow to submit 
    } 
} 
?> 
0

Попробуйте код ниже

<?php 
    if(isset($_POST['submit'])){ 
      $required = array('name', 'surname', 'phone'); 

      $error = false; 
      $message=''; 
      foreach($required as $field) { 
       if (empty($_POST[$field])) { 
       $error = true; 
       } 
      } 

      if ($error) { 
       $message = 'All fields required'; 
       }else{ 
    //Submit process here 

      } 

    } 
    ?> 
    <?php echo $message; ?> 
    <form method="post" action="process.php" autocomplete="off"> 

    Name: <input type="text" name="name"/> 
    Surname: <input type="text" name="surname" /> 
    Phone: <input type="text" name="phone" /> 

    <input type="submit" name="submit" value="Submit" /> 
1

Вы желаете что-то на стороне клиента к подтвердите поля, прежде чем сможете отправить их на следующую страницу. Просмотрите проверку в jQuery и, возможно, включите «обязательный» атрибут, который был добавлен в HTML5.

0

Самый простой и быстрый способ, вы можете использовать HTML5 required.

<form method="post" action="process.php" autocomplete="off"> 
 

 
Name: <input type="text" name="name" required /> 
 
<BR> 
 
Surname: <input type="text" name="surname" required /> 
 
<BR> 
 
Phone: <input type="text" name="phone" required /> 
 
<BR> 
 
Gender: Male <input type="radio" name="gender" value="1" required /> 
 
     Female <input type="radio" name="gender" value="2" required /> 
 
<BR> 
 
<input type="submit" /> 
 
    
 
</form>

+0

выглядит ПРИТИ хорошо, но что делать, если у меня есть <входной тип =» радио ">? –

+0

Если вы добавили 'required' на, например, 3-я радио-кнопка с тем же' name = '' ', для нее потребуется хотя бы один из них. – scottevans93

+0

@TomsAudrins подскажет то же самое. Как сказал шотландец93. Я обновил свой ответ/фрагмент. Взгляни. – rmondesilva