我需要将php数组传递给jquery来完成某些任务。为SESSION创建php数组,然后为jquery创建json_encoded。之后,我将该变量存储到window js命名空间,以便在我的jquery脚本中使用该数组。
if(isset($_SESSION['mySession'])){
$json_array = json_encode($php_array);
}
<script>
<?php echo "window.json_from_php = ".$json_array; ?>
</script>
我需要做的是在执行任何操作之前检查此数组是否存在/是否为空/未定义。 check子句对'undefined'操作数成功,但对其余操作不成功。如何检查jquery数组是否为空?
这是初始化后json_encoded数组的输出,当$ php_array中没有任何元素时:
string '[""]' (length=4)
这是jquery:
$(function() {
var results = $('#results');
var js_array = window.json_from_php;
var count = js_array.length;
if ((typeof window.json_from_php === 'undefined') || (js_array === null) || (jQuery.isEmptyObject(js_array)) || (count === 0)) {
$('<p>Array is empty.</p>').appendTo(results);
}
else {
jQuery.each(js_array,function(key,val){
$('<ul><li id="'+key+'">'+val+'</li></ul>').appendTo(results);
});
}
});
答案 0 :(得分:18)
这是我检查空/空json数组的方法。
if (js_array == undefined || js_array == null || js_array.length == 0){
$('<p>Array is empty.</p>').appendTo(results);
}
如果您的json数组是[""]
,那么您可能需要添加类似
if (js_array == undefined || js_array == null || js_array.length == 0 || (js_array.length == 1 && js_array[0] == ""))
答案 1 :(得分:0)
这应该足够了:
if (typeof js_array === 'undefined' || !js_array.length) {
$('<p>Array is empty.</p>').appendTo(results);
} else {...}