Я хочу подсчитать элементы массива, возвращенные json. Когда я использую response.length
, он подсчитывает все символы в массиве (я так думаю), в то время как то, что я хочу, это подсчет количества элементов в массиве. Тот же метод работает на других страницах, только не с этим..length подсчитывает символы, а не длину массива
Это код PHP:
...$response[] = array("id" => $row['appid'],
"hour" => $row['hour'],
"tname" => $tname,
"tsurname" => $tsurname,
"cname" => $cname,
"csurname" => $csurname,
"cgsm" => $cgsm,
"cemail" => $cemail,
"cdept" => $cdept,
"cdeg" => $cdeg,
"purpose" => $purpose,
"clientnotshown" => $row['clientnotshown']);
};
if(isset($response)){
echo json_encode($response);
} else {
$response = array("val" => 0);
echo json_encode($response);
};
код Javascript:
function updateTable() {
var getData = {
date: $("#displaydate").val(),
operation:"getData"
}
$.post("printoperations.php", getData).done(function(response) {
if (response.val != 0){
alert("so far so good")
var arrayLength = response.length
alert(response)
alert(arrayLength)}
};
Вот картина того, что я получаю. Я хочу, чтобы получить количество элементов, которые в данном случае 2.
разобрать этот ответ на объект, а затем получить его. –
Вы пытались разобрать JSON, чтобы получить реальный массив? Или укажите '' json'' в качестве типа данных при вызове '$ .post()', и jQuery проанализирует его для вас. – nnnnnn
'JSON.parse (response)' или сообщить jQuery, что вы ожидаете ответа JSON. – Svenskunganka