2015-10-22 6 views
5

У меня есть простая форма, требующая проверки.
Я сделал это с помощью функции empty(). Если проверка не прошла, пользователь получает предупреждение. Как только это предупреждение будет создано, все введенные значения исчезнут.PHP Сохранять введенные значения после ошибки проверки

Я хотел бы сохранить их.

Это то, что я сделал:

<form id="" name="" action="<?php echo get_permalink(); ?>" method="post"> 
    <table> 
     <tr> 
      <td> 
       Name:<input type="text" id="name" name="name"> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <input class="submit-button" type="submit" value="Send" name="submit"> 
      </td> 
     </tr> 
    </table> 
</form> 
<?php 
    if($_POST["submit"]){ 
     if (!empty ($_POST["name"])){ 
      // do something 
     }else{ 
      ?> 
      <script type="text/javascript"> 
       alert('U heeft niet alle velden ingevuld. Graag een volledig ingevuld formulier versturen'); 
      </script> 
      <?php 
     } 
?> 

ответ

4

Pass, что введенное значение в качестве значения по умолчанию для ввода:

<input type="text" id="name" name="name" value="<?php echo isset($_POST["name"]) ? $_POST["name"] : ''; ?>"> 
+0

Это приведет к изменению неопределенной переменной. – Daan

+0

Извините, я редактировал свой код. –

+0

Да, это так. Я понимаю .. Thnx! – Interactive

1

Самый простой способ будет это для каждого поля ввода:

<input type="text" id="name" name="name" value="<?= isset($_POST['name']) ? $_POST['name'] : ''; ?>"> 

Он проверяет, если вы уже отправили форму один раз, если это так, введите значение в текстовое поле.

1

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

/* Store form values in session var */ 
if($_SERVER['REQUEST_METHOD']=='POST'){ 
    foreach($_POST as $field => $value) $_SESSION[ 'formfields' ][ $field ]=$value; 
} 

/* Function used in html - provides previous value or empty string */ 
function fieldvalue($field=false){ 
     return ($field && !empty($field) && isset($_SESSION[ 'formfields' ]) && array_key_exists($field, $_SESSION[ 'formfields' ])) ? $_SESSION[ 'formfields' ][ $field ] : ''; 
} 

/* example */ 
echo "<input type='text' id='username' name='username' value='".fieldvalue('username')."' />"; 
Смежные вопросы