Intereting Posts
Пакет php5 не имеет кандидата на установку (Ubuntu 16.04) Попытка получить свойство не объекта – CodeIgniter Сравнить объект с свойствами datetime без микросекунд Выполнить mysql «создать функцию» с помощью PHP Доступ к датам в PHP за пределами 2038 Получение данных из одного массива в обратном порядке CakePHP – проблема с запросом paginate HABTM Случай переключения PHP более 1 значения в случае Простейший способ чтения csv-файла с использованием php Преобразование шестнадцатеричного кода в читаемую строку в PHP Это плохая модель? (Переключатель внутри / для петли foreach) Буферизация вывода PHP, ошибка кодирования содержимого, вызванная ob_gzhandler? AWS SDK для PHP: ошибка получения учетных данных с сервера метаданных профиля экземпляра Как я могу заставить PHP отображать ошибку вместо того, чтобы дать мне 500 Internal Server Error mysql: выберите все записи из определенного месяца с помощью PHP

Очистить поле формы после успешной подачи php-формы

Я делаю простую форму, с которой сталкиваюсь, когда я отправляю значения формы, которые все еще остаются в поле. и я хочу очистить его после УСПЕШНОГО представления. Пожалуйста помоги.

вот мой код для формы ..

<label class="w">Plan :</label> <select autofocus="" name="plan" required="required"> <option value="">Select One</option> <option value="FREE Account">FREE Account</option> <option value="Premium Account Monthly">Premium Account Monthly</option> <option value="Premium Account Yearly">Premium Account Yearly</option> </select> <br> <label class="w">First Name :</label><input name="firstname" type="text" placeholder="First Name" required="required" value="<?php echo $_POST['firstname'];?>"><br> <label class="w">Last Name :</label><input name="lastname" type="text" placeholder="Last Name" required="required" value="<?php echo $_POST['lastname'];?>"><br> <label class="w">E-mail ID :</label><input name="email" type="email" placeholder="Enter Email" required="required" value="<?php echo $_POST['email'];?>"><br> <label class="w">Password :</label><input name="password" type="password" placeholder="********" required="required" value="<?php echo $_POST['password'];?>"><br> <label class="w">Re-Enter Password :</label><input name="confirmpassword" type="password" placeholder="********" required="required" value="<?php echo $_POST['confirmpassword'];?>"><br> <label class="w">Street Address 1 :</label><input name="strtadd1" type="text" placeholder="street address first" required="required" value="<?php echo $_POST['strtadd1'];?>"><br> <label class="w">Street Address 2 :</label><input name="strtadd2" type="text" placeholder="street address second" value="<?php echo $_POST['strtadd2'];?>"><br> <label class="w">City :</label><input name="city" type="text" placeholder="City" required="required" value="<?php echo $_POST['firstname'];?>"><br> <label class="w">Country :</label><select autofocus="" id="a1_txtBox1" name="country" required="required" placeholder="select one" value="<?php echo $_POST['country'];?>"> 

Любая помощь будет назначена

Они остаются в полях, потому что вы явно говорите PHP, чтобы заполнить форму представленными данными.

 <input name="firstname" type="text" placeholder="First Name" required="required" value="<?php echo $_POST['firstname'];?>"> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ HERE 

Просто удалите это, или если вы хотите, чтобы условие не делало этого, делайте оператор if для этого echo или просто $_POST поля $_POST .

 $_POST = array(); // lets pretend nothing was posted 

Или, если удастся, перенаправить пользователя на другую страницу:

 header("Location: success.html"); exit; // Location header is set, pointless to send HTML, stop the script 

Что, кстати, является предпочтительным методом. Если вы сохраняете пользователя на странице, полученной с помощью метода POST , если он обновит страницу, форма будет отправлена ​​снова.

Вы можете использовать .reset() в своей форме.

 $(".myform")[0].reset(); 

Данные POST, в которых хранятся представленные данные формы, отражаются в форме, например:

 <input name="firstname" type="text" placeholder="First Name" required="required" value="<?php echo $_POST['firstname'];?>" 

Либо очистите данные POST после того, как вы сделали это с формой, то есть все входы были в порядке, и вы выполнили все ваши результаты из формы.
Или, как только вы определили, что форма одобрена и вы сделали все, что бы вы ни действовали из формы, перенаправите пользователя на новую страницу, чтобы сказать «все сделано, спасибо» и т. Д.

 header('Location: thanks.php'); exit(); 

Это останавливает данные POST, они известны как «Post / Redirect / Get»:
http://en.wikipedia.org/wiki/Post/Redirect/Get

Метод Post / Redirect / Get (PRG) и использование другой страницы также гарантирует, что если пользователи нажмут обновление браузера или кнопку перехода назад в другое место, ваша форма не будет отправлена ​​повторно.
Это означает, что если ваша форма вставляется в базу данных или отправляется кому-то по электронной почте (и т. Д.), Без метода PRG значения будут (вероятно) вставлены / отправлены по электронной почте каждый раз, когда они нажмут обновление или перейдут на страницу с помощью кнопки history / back.

Я столкнулся с этой подобной проблемой и не хотел использовать header () для перенаправления на другую страницу.

Решение:

Используйте $_POST = array(); для сброса массива $_POST в верхней части формы вместе с кодом, используемым для обработки формы.

Сообщения об ошибке или успехе могут быть добавлены условно после формы. Надеюсь это поможет 🙂

Поместите onClick в кнопку submit:

 <input type="text" id="firstname"> <input type="text" id="lastname"> <input type="submit" value="Submit" onClick="clearform();" /> 

В <head> определите функцию clearform () и установите для значения текстового поля значение "" :

 function clearform() { document.getElementById("firstname").value=""; //don't forget to set the textbox id document.getElementById("lastname").value=""; } 

Таким образом текстовое поле будет очищено при нажатии кнопки отправки.

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

 <input type="text" name="usu" id="usu" value="<?php echo $usu;?>" ></input> <input type="text" name="pass" id="pass" value="<?php echo $varpass;?>"></input> 

это те входы, которые я хотел очистить после нажатия на мою кнопку.

И здесь php-код:

 $query= "INSERT INTO usuarios (tipo, usuario, password) VALUES ('".$vartipo."', '".$usu."', '".$varpass."')"; if (!mysqli_query($conexion,$query)){ die('Error: ' . mysqli_error($conexion)); } else{ $usu = ''; $varpass= ''; $result = '<div class="result_ok">El usuario se ha registrado con éxito! <div>'; } 

$ usu = '';
$ varpass = '';

это линии, которые очищают входы: D

этот код поможет вам

 if($insert){$_POST['name']="";$_POST['content']=""} 

Если вы хотите, чтобы поле формы было ясно, вы должны добавить только задержку в событии onClick, например:

 <input name="submit" id="MyButton" type="submit" class="btn-lg" value="ClickMe" onClick="setTimeout('clearform()', 2000 );" onClick="setTimeout('clearform()', 1500 );" . in 1,5 seconds its clear document.getElementById("name").value = ""; <<<<<<just correct this document.getElementById("telephone").value = ""; <<<<<correct this 

По clearform() , я имею в виду вашу функцию поля очистки.