jQuery AJAX未将变量发送到PHP页面-没有错误

时间:2018-09-27 11:24:20

标签: php jquery

我有一个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请求,它们都可以正常工作。

3 个答案:

答案 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代码