如何在Ajax请求中传递空白数组?

时间:2019-01-04 11:06:16

标签: javascript php jquery arrays ajax

我面临一个问题,尽管第一步已初始化数组,但我无法在Ajax Post请求中传递空白数组(如果数组为 null )。在请求后传递非空数组。

在下面的代码中,我已初始化名为 selectedDeliveryLocations 数组。当数组不为空

  

(例如[“ 888888”,“ 17”,“ 5”,“ 2”,“ 3”])

我在ajax页面上收到的

variable selectedDeliveryLocations变量,但如果为空,则我在Ajax请求上仅收到城市变量,我应该接收到selectedDeliveryLocations变量以及selectedDeliveryLocations [] 空白数组。

$("select[name='city']").on("change", function(){
var city = $(this).val();

var selectedDeliveryLocations = [];
if( $("select[name='service_locations[]']").val() != '' && $("select[name='service_locations[]']").val() != null){
    selectedDeliveryLocations = $("select[name='service_locations[]']").val();
}

$.ajax({
    url:"ajaxGetSelectedDeliveryLocOnCityChange.php",
    data:{
            city:city,
            selectedDeliveryLocations:selectedDeliveryLocations
        },
    type:"post",
    success: function(response){
        var response = JSON.parse(response);
        if(response){

            $("select[name='service_locations[]']").html(response.responseContent);
            $("select[name='service_locations[]']").selectpicker("refresh");

            showSelectedDeliveryLocations();
        }
    },
    error: function(){ alert("Something went wrong, please try again"); },
    complete: function(response){}
});

});

2 个答案:

答案 0 :(得分:1)

尝试一下:

selectedDeliveryLocations = $("select[name='service_locations[]']").val() || '';

,然后在服务器端进行相应检查。

答案 1 :(得分:0)

如果在 service_locations 中没有选择任何值,则selectedDeliveryLocations = $("select[name='service_locations[]']").val();返回undefined或null。

您可以将默认值作为空数组传递,以覆盖如下所示的虚假值

selectedDeliveryLocations = $("select[name='service_locations[]']").val() || [];