Intereting Posts

Перезагрузите страницу после успешной отправки формы с помощью ajax

В настоящее время я делаю запись в форме с помощью ajax

<div id='error3'></div> <input type='email' required name='email' id='email' placeholder='Email'> <input type='password' required name='password' id='password' placeholder='password'> <input type='submit' name='submit99' id='submit' value='login'> 

мой java-скрипт

 <script> $(document).ready(function(){ $("#submit").click(function(){ var emailnew = $("#email").val(); var password = $("#password").val(); var dataString = '&email='+ email + '&password='+ password; if(emailnew==''|| password='') { document.getElementById('error3').innerHTML="Please Fill All Fields"; } else { $.ajax({ type: "POST", url: "process.php", data: dataString, cache: false, success: function(result){ document.getElementById('error3').innerHTML=result; } }); } return false; }); }); 

и мой скрипт process.php

 <?php if(isset($_POST['email'])) { if (filter_var($email99, FILTER_VALIDATE_EMAIL)) { $con=mysqli_connect('localhost','root','password','database'); $query="SELECT * FROM TABLENAME WHERE USER='' AND PASSWORD=''"; $result=mysqli_query($con,$query); if(mysqli_num_rows($result)!=0) { echo "You are successfully logged in"; login user start a cookie or session } else { echo "You are bot a valid user"; } } else echo "not a valid email"; } ?> 

теперь, если мы получим сообщение «Вы успешно вошли в систему», обновите текущую страницу, иначе отобразите только сообщение об ошибке и не обновите страницу.

у меня есть выбор добавления

 <meta http-equiv="refresh" content="30"> 

но это работает только в хроме не в firefox.

Вы можете положить конец цикла внутри цикла success: function(result){

 <script> $(document).ready(function () { $("#submit").click(function () { var emailnew = $("#email").val(); var password = $("#password").val(); var dataString = '&email=' + email + '&password=' + password; if (emailnew == '' || password = '') { document.getElementById('error3').innerHTML = "Please Fill All Fields"; } else { $.ajax({ type: "POST", url: "process.php", data: dataString, cache: false, success: function (result) { if (result == "You are successfully logged in") { document.location.href = 'login.htm'; } else { document.getElementById('error3').innerHTML = result; } } }); } return false; }); }); </script> 

Попробуй это:

 <script> $(document).ready(function () { $("#submit").click(function () { var emailnew = $("#email").val(); var password = $("#password").val(); var dataString = '&email=' + email + '&password=' + password; if (emailnew == '' || password = '') { document.getElementById('error3').innerHTML = "Please Fill All Fields"; } else { $.ajax({ type: "POST", url: "process.php", data: dataString, cache: false, success: function (result) { document.getElementById('error3').innerHTML = result; if (result == "You are bot a valid user") { window.location.href = "mypage.html" } } }); } return false; }); }); </script> 
 <script> $(document).ready(function(){ $("#submit").click(function(){ var emailnew = $("#email").val(); var password = $("#password").val(); var dataString = '&email='+ email + '&password='+ password; if(emailnew == null || password == null) { document.getElementById('error3').innerHTML="Please Fill All Fields"; } else { $.ajax({ type: "POST", url: "process.php", data: dataString, cache: false, success: function(result) { if(result == "logged in true") { window.setTimeout(function(){location.reload()},1000); //reload with time location.reload(); //reload without time } else { document.getElementById('error3').innerHTML=result; } } }); } return false; }); }); </script> 

ваш process.php должен вернуть результат, например, успешный (true) и неуспешный (false) флаг. или userID, например, если он был успешным и некоторые другие флаги, если это не так. вам не следует повторять уведомления в файле proccess.php. то вы можете иметь что-то вроде этого в вашем javascript-коде:

 $.ajax({ type: "POST", url: "process.php", data: dataString, cache: false, success: function(result){ if(result=='successful'){ showMessageAndredirectFunction(); //in this functionyou can show the message in your html page like the way you do for error and with a delay redirect the page with javascript else document.getElementById('error3').innerHTML="Bad usernaem or password"; }}); 

вы можете установить сеанс в файле process.php, если он был успешным.

window.location.reload() используется для перезагрузки страницы с помощью javascript. или вы можете использовать window.location.href=window.location.href;