繁体   English   中英

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

[英]Passing POST Variable in Ajax Request for Reload not working

我有一个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都为空,因此无法按预期对它们执行任何操作。

有人知道这个问题可能是什么吗?

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

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

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

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

出现错误时,我认为PHP脚本未针对该请求发送任何响应。 您可以在开发人员工具栏的“网络”>“ 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);
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM