我面临一个问题,尽管第一步已初始化数组,但我无法在Ajax Post请求中传递空白数组(如果数组为 null )。在请求后传递非空数组。
在下面的代码中,我已初始化名为 selectedDeliveryLocations 的数组。当数组不为空
我在ajax页面上收到的(例如[“ 888888”,“ 17”,“ 5”,“ 2”,“ 3”])
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){}
});
});
答案 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() || [];