提交表单而不重定向到操作页面,但刷新当前页面

时间:2015-03-12 12:47:08

标签: php html forms

我有一个发布到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>';
?>

3 个答案:

答案 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';
?>