[英]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.