我通过JSON从PHP数组返回了两个元素,但是"data.length"不起作用。如何在 JS 中获取数组的大小?如果我把它变成数组中的一个元素( data.name.length ) 返回 STRING 中的元素数。
for ($i = 0; $i < $result; $i++) {
$img_name ['id'] = $get_img_id[$i]['id'];
$img_name ['name'] = $get_img_id[$i]['id'];
}
return json_encode($img_name);
.js:
$.ajax({
url: "upimage",
dataType: "json",
type: "POST",
data: formData,
success: function(data) {
//$.each(data, function(i) {
$("#all_files").val(data + " ,");
for ( var i = 0, l = data.length; i < l; i++ ) {
$(".returns_img").append("<div class='img_ls' id='" + i + "'><img src='/img/" + data['name'][i] + "'><button class='dell_img' id='"+ i +"'>מחק</button><br><button class='add_img' id='"+ i +"'>הוסף לכתבה</button></div>");
}
},
cache: false,
contentType: false,
processData: false
});
你返回的不是数组,而是来自 php 代码的单个对象,要获得你需要的东西,试试这个:
$result = array();
for ($i = 0; $i < $result; $i++) {
$img_name ['id'] = $get_img_id[$i]['id'];
$img_name ['name'] = $get_img_id[$i]['id'];
$result[] = $img_name;
}
return json_encode($result);
像这样使用,
var arr = [], len;
for(key in data) {
arr.push(key);
}
len = arr.length;
console.log(len)