提交后无法刷新页面
Cant get page to refresh after submit
我正在尝试让我的页面在提交时刷新,但它不会。
这是代码
PHP页面...
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
//check if its an ajax request, exit if not
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
}
//check $_POST vars are set, exit if any missing
if(!isset($_POST["username"]) || !isset($_POST["message"]))
{
$output = json_encode(array('type'=>'error', 'text' => 'Input fields are empty!'));
die($output);
}
//Sanitize input data using PHP filter_var().
$username = filter_var(trim($_POST["username"]), FILTER_SANITIZE_STRING);
$message = filter_var(trim($_POST["message"]), FILTER_SANITIZE_STRING);
//additional php validation
if(strlen($username)<4) // If length is less than 4 it will throw an HTTP error.
{
$output = json_encode(array('type'=>'error', 'text' => 'Name is too short!'));
die($output);
}
if(strlen($message)<5) //check emtpy message
{
$output = json_encode(array('type'=>'error', 'text' => 'Too short message!'));
die($output);
}
require('config.php');
$sql="INSERT INTO guestbook(name, comment, datetime) VALUES('$username','$message', now())";
header("Location:thanks.php");
}
?>
这是JS页面
$(document).ready(function(){
$("#submit").click(function() {
//get input field values
var name = $('#name').val();
var message = $('#comment').val();
var flag = true;
/********validate all our form fields***********/
if(name==""){
$('#name').css('border-color','red');
flag = false;
}
if(message=="") {
$('#comment').css('border-color','red');
flag = false;
}
/********Validation end here ****/
/* If all are ok then we send ajax request to email_send.php *******/
if(flag)
{
$.ajax({
type: 'post',
url: "thanks.php",
dataType: 'json',
data: 'username='+name+'&message='+message,
beforeSend: function() {
$('#submit').attr('disabled', true);
$('#submit').after('<span class="wait"> <img src="image/loading.gif" alt="" /></span>');
},
complete: function() {
$('#submit').attr('disabled', false);
$('.wait').remove();
},
success: function(data)
{
if(data.type == 'error')
{
output = '<div class="error">'+data.text+'</div>';
}else{
output = '<div class="success">'+data.text+'</div>';
$('input[type=text]').val('');
$('#guestform textarea').val('');
}
$("#result").hide().html(output).slideDown();
}
});
}
});
//reset previously set border colors and hide all message on .keyup()
$("#guestform input, #guestform textarea").keyup(function() {
$("#guestform input, #guestform textarea").css('border-color','');
$("#result").slideUp();
});
});
我将标题信息放在 PHP 中,但每次我点击提交时,它都会将数据保存在数据库中,然后只停留在页面上......文本区域中的文本也保留在那里。我希望它刷新页面,使其再次看起来像空白表单。
如果你想刷新你所在的整个页面,你可以在发出请求的回调函数结束时使用 reload()。
location.reload();
你可以像这样编辑你的 php 文件,
$sql= mysqli_query($db, "INSERT INTO guestbook(name, comment, datetime) VALUES('$username','$message', now())");
// if you using mysqli.
if($sql){
header("Location:thanks.php");
}else{
$output = json_encode(array('type'=>'error', 'text' => 'failed to insert data'));
die($output);
}
如果没有 mysql_query/mysqli_query 或您使用的任何内容,您的查询就不会执行。
和您的 AJAX
$.ajax({
type: 'post',
url: "thanks.php",
dataType: 'json',
data: 'username='+name+'&message='+message,
beforeSend: function() {
$('#submit').attr('disabled', true);
$('#submit').after('<span class="wait"> <img src="image/loading.gif" alt="" /></span>');
},
complete: function() {
$('#submit').attr('disabled', false);
$('.wait').remove();
},
success: function(data)
{
if(data.type == 'error')
{
output = '<div class="error">'+data.text+'</div>';
$("#result").hide().html(output).slideDown();
}
else
{
output = '<div class="success">'+data.text+'</div>';
$("#result").hide().html(output).slideDown();
$('input[type=text]').val('');
$('#guestform textarea').val('');
// reload
location.reload();
}
}
});
相关文章:
- Jquery提交表单而不刷新
- 在jQuery中的IFrame中提交表单后刷新父窗口
- 浏览器在用PHP提交表单时不断刷新
- 如何在提交后关闭颜色框窗口,并刷新父页面上的图像
- 将以下代码重置并刷新提交后的表单
- 在ASP.NET中单击“提交”按钮时,使表单不刷新
- Jquery表单提交仍在刷新
- 提交后刷新整个页面(Fancybox)
- 提交后无法刷新页面
- 如何记住提交/刷新后使用的最后一个选项卡
- 使用javascript创建Form元素,并在不重定向/刷新的情况下提交
- 如何在不刷新 node.js 和 ejs 的情况下提交表单
- 在初始表单提交后使用ajax/jQuery自动刷新,然后更改页面标题
- 提交一个在同一页面上的表单,而不重新刷新页面
- 提交链接时不刷新,也不使用ajax
- 使用enter提交表单,而不触发页面刷新
- 在HTML上提交时阻止刷新
- 停止从 DOM 刷新提交
- 避免刷新提交表单的页面
- 复选框,刷新/提交后保持选中状态