我有一个发布到basket.php页面的表单,在表单提交后,它会重定向到basket.php页面并返回到订单页面(表单所在的页面)。它发生得很快,但你仍然可以看到篮子页面只是一秒钟,我如何停止显示basket.php页面,但仍然刷新当前页面(订单页面)。
我的代码:
<?php
echo '<div class="food">';
echo '<form method="post" action="basket.php"
onsubmit="window.location.reload()" >';
echo '<h4>'.$obj->food_title.'</h4>';
echo '<div class="pic"><img src="admin/food_images/'.$obj->food_image.'"
width= "180" height= "160"></div>';
echo "<p><b>£".$obj->food_price."</b></p>";
echo '<div class = "btn"><a href="info.php?foo_id='.$obj->food_id.'"
style="float:left">INFO</a></div>';
echo '<div class = "add_b"><button>Add to Basket</button></div>';
echo '<input type="hidden" name="food_code"
value="'.$obj->food_id.'" />';
echo '<input type="hidden" name="type" value="add" />';
echo '</form>';
echo '</div>';
?>
答案 0 :(得分:2)
从basket.php剪切代码并将其粘贴到主页顶部,前面加上
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//basket.php code here
}
然后,将表单代码更改为
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
这将刷新页面并执行页面顶部的php代码。
答案 1 :(得分:0)
也许这会有所帮助。包含各种答案,其中一些涉及使用绝对网址Refresh page after form submiting
要停止简要显示购物篮页面的操作,我不确定您是否可以阻止访问该页面。 basket.php会在屏幕上打印任何内容吗?我认为它只是处理传入的POST变量,然后转到您的订单页面,对吧?
答案 2 :(得分:0)
嗨,这是一个简单的ajax表单提交文件试试这个,
的index.html:
<!DOCTYPE html>
<html>
<title>AJAX Tutorial</title>
<head>
<link href="css/bootstrap.css" type="text/css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-2.1.3.js"></script>
</head>
<body>
<div class="container">
<form id="add-basket-form" class="form-inline">
<div class="form-group">
<label class="sr-only" for="exampleInputAmount">Name</label>
<div class="input-group">
<input type="text" class="form-control" id="name" name="name" placeholder="name">
</div>
</div>
<div class="form-group">
<label class="sr-only" for="exampleInputAmount">Age</label>
<div class="input-group">
<input type="text" class="form-control" id="age" name="age" placeholder="age">
</div>
</div>
<div class="form-group">
<div class="input-group">
<input type="submit" class="form-control" name="add" value="Add" placeholder="age">
</div>
</div>
</form>
</div>
<script>
jQuery(function(){
$('#add-basket-form').submit(function(){
var name = $('#name').val();
var age = $('#age').val();
$.ajax({
url : 'basket.php',
dataType : 'JSON',
type : 'post',
data: {
'name' : name,
'age' : age,
},
success: function(data) {
console.log(data);
}
});
return false;
});
});
</script>
</body>
</html>
<?php
$name = $_POST['name'];
$age = $_POST['age'];
// Above is the way to get variables and you can process whatever you want
echo 'success';
?>