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