多选框未选中时,如何将数组设为'%'后执行json_encode?
解决方案
在PHP端提前处理$_REQUEST['status']参数,确保无论多选框是否选中,都能得到符合要求的数组:
// 判定status参数,未选中任何选项时设为包含'%'的数组 $status = isset($_REQUEST['status']) && !empty($_REQUEST['status']) ? $_REQUEST['status'] : ['%']; ?> var status = <?php echo json_encode($status); ?>;
逻辑说明
当多选框无选中项时,表单提交不会携带status[]参数,此时$_REQUEST['status']不存在;少数场景下即使存在也会是空数组。通过三元运算符提前判断赋值,可保证$status始终是有效数组:选中时为用户选择的状态值数组,未选中时则是['%'],后续传递给后端接口就能按预期匹配所有状态。
完整修改后的代码片段
// 先处理status变量 $status = isset($_REQUEST['status']) && !empty($_REQUEST['status']) ? $_REQUEST['status'] : ['%']; ?> var status = <?php echo json_encode($status); ?>; $.getJSON("fertigung/graph/mes/autocomplete/getdata_downcases_daily.php?type=json", {status: status}, function(data) { for( var i = 0; i < data.length; i++) { dataPoints1.push({ x: data[i].x, y: data[i].y }); } chart1.render(); });
内容的提问来源于stack exchange,提问作者Para Doxs
相关产品推荐
相关产品推荐

