在Ajax中传递POST变量请求重新加载不起作用

时间:2017-04-22 15:57:07

标签: javascript php ajax

我有一个ID为#filter

的按钮
<input type="button" name="filter" id="filter" value="Filter" class="btn btn-info" />  

我的Ajax脚本如下:

<script>
 $(document).ready(function(){  
 $('#filter').click(function(){  
            var rangestart = $('#rangestart').val();  
            var rangeend = $('#rangeend').val();  
            if(rangestart != '' && rangeend != '')  
            {  
                 $.ajax({  
                      method:"POST",  
                      data:{rangestart:rangestart, rangeend:rangeend},  
                      success:function(data)  
                      {  
                           window.location = 'http://www.test/daterange/dates.php?rangestart=' + rangestart +'&rangeend=' + rangeend
                      }  
                 });  
            }  
            else  
            {  
                 alert("Please Select Date");  
            }  
       });  
  });  

我点击了我的#filter按钮,它按预期工作。

rangestart正在传递输入框的值(在04-15-2017下方的情况下) rangeend正在传递输入框的值(在04-20-2017下面的情况下)

因此页面重新加载,地址栏中的网址为:

http://www.example.com/daterange/dates.php?rangestart=04-15-2017&rangeend=04-20-2017

在我的dates.php文件中

$rangestart = $_POST['rangestart'];
$rangeend = $_POST['rangeend'];

位于页面顶部。但即使地址栏中传递的数据$rangestart$rangeend都是空的,因此无法按预期对其进行任何操作。

任何人都知道这个问题是什么?

3 个答案:

答案 0 :(得分:2)

如果您想在地址栏中访问它们,请使用$ _GET ['rangestart']。

答案 1 :(得分:1)

window.location重定向是GET请求,因此您需要在dates.php中使用$_GET而不是$_POST

$rangestart = $_GET['rangestart'];
$rangeend = $_GET['rangeend'];

答案 2 :(得分:1)

AJAX方法用于加载新信息而不刷新页面。如果您正在重新加载响应,那么如果您通过查询字符串传递日期会更好。

出现错误,我认为PHP脚本没有为该请求发送任何响应。您可以在NETWORK中检查响应&gt;开发人员工具栏的XHR部分。另外,将错误函数添加到ajax调用以检查错误,如下所示,

$.ajax({  
    method: "POST",  
    data: { rangestart: rangestart, rangeend: rangeend },  
    success:function(data) {  
        window.location = 'http://www.test/daterange/dates.php?rangestart=' + rangestart +'&rangeend=' + rangeend
    },
    error: function(xhr, status, error) {
        var err = eval("(" + xhr.responseText + ")");
        alert(err.Message);
    }
});