我有一个AJAX,当我的任何下拉列表发生更改时,该AJAX都会运行,以刷新数据表中的数据。我有这个功能
$("select").on('change', function() {
//get values for all checkboxes (different IDs!)
var location_city = document.getElementsByName("city_filter")[0].value;
var location_county = document.getElementsByName("county_filter")[0].value;
var location_region = document.getElementsByName("region_filter")[0].value;
var location_country = document.getElementsByName("country_filter")[0].value;
$.ajax({
url: "load_group_stores.php",
data: {
'action': 'reload_table',
'location_city': location_city,
'location_county': location_county,
'location_region': location_region,
'location_country': location_country
},
type: 'post',
success: function(result) {},
error: function() {}
});
});
在load_group_stores.php中,我尝试以通常的方式获取变量
$action = $_GET['action'];
$location_city = $_GET['location_city'];
$location_county = $_GET['location_county'];
$location_region = $_GET['location_region'];
$location_country = $_GET['location_country'];
,但结果为空。我什至尝试自行回显$ _GET
echo 'city: ' . $_GET['location_city'];
,只是有一个空白行。老实说,我看不到我所缺少的内容,因为在我的网站上有多个AJAX请求,它们都可以正常工作。
答案 0 :(得分:1)
看起来您正在使用POST发送数据,但是您只在PHP代码中查找查询参数。
我建议将$_GET
(仅在查询字符串中查找)更改为$_REQUEST
(从查询字符串或发布数据中查找)或$_POST
(仅在发布数据中查找)
答案 1 :(得分:1)
您需要保持一致。由于您要发送发布请求,因此必须从$ _POST变量中检索数据:
$action = $_POST['action'];
$location_city = $_POST['location_city'];
$location_county = $_POST['location_county'];
$location_region = $_POST['location_region'];
$location_country = $_POST['location_country'];
答案 2 :(得分:0)
具有检查get方法数组的php代码。您正在通过post方法调用文件。在get方法中,您可以使用变量$ _GET或$ _REQUEST。
$action = $_POST['action'];
$location_city = $_POST['location_city'];
$location_county = $_POST['location_county'];
$location_region = $_POST['location_region'];
$location_country = $_POST['location_country'];
echo 'city: ' . $_POST['location_city'];
它将打印城市
否则请在ajax调用中将方法更改为 get ,并使用相同的php代码