за последние несколько часов у меня есть стек с этой проблемой, я надеюсь, что смогу найти решение здесь. То, что я пытаюсь сделать, выглядит примерно так:
PHP:
$errorIds = array(); if(error hapens){ array_push($errorIds, $user['userId']); } $data['results'] = "success"; $data['message'] = "Your message have been sent successfully"; $data['error_id_array'] = $errorIds; echo json_encode($data);
и JS:
$.ajax({ type: "POST", url: HTTPS + '/lib/model/data/ctlSms.php?send=1', data: $("#smsSendForm").serialize(), dataType: 'json', success: function(data){ $("textarea").removeClass("valid"); if(data['results']=="success"){ $('#smsSendForm')[0].reset(); $('.jtable').find("tbody tr").each(function(){ var firstCol = parseInt($(this).find("td:first").text()); var inArray = $.inArray(firstCol, data['error_id_array']); if(inArray == -1){ $(this).css("background", "green"); } else { $(this).css("background", "red"); } }); } else { console.log(data['message']); $('.jtable').find("tbody tr").each(function(){ var firstCol = parseInt($(this).find("td:first").text()); var inArray = $.inArray(firstCol, data['error_id_array']); if(firstCol == data['error_id']){ $(this).css("background", "red"); return false; } else { if(inArray == -1){ $(this).css("background", "green"); } else { $(this).css("background", "red"); } } }); } } });
То, что я хочу выполнить, – это ошибка в этом массиве, jQuery проверяет, является ли в массиве идентификаторов пользователей идентификатор, который улаживает идентификаторы JTables, и если совпадения, чем фоны цветокоррекции, красный цвет еще не выделяет зеленый цвет фона. И проблема здесь где-то:
$('.jtable').find("tbody tr").each(function(){ var firstCol = parseInt($(this).find("td:first").text()); var inArray = $.inArray(firstCol, data['error_id_array']); /// here if(inArray == -1){ $(this).css("background", "green"); } else { $(this).css("background", "red"); } });
Я не получаю возможного совпадения, даже если я намеренно создаю ошибку. Все окрашено в зеленый цвет, код задней панели отлично работает, но этот интерфейс меня разочаровывает последние несколько часов. Может быть, я делаю что-то неправильно ???
РЕДАКТИРОВАТЬ:
Вот что возвращает console.log (data ['error_id_array']):
["2"]
EDIT2:
Okey, я буду спрашивать с другой точки зрения. Как получить доступ к объекту JSON в форме, подобной этой, – console.log out put from data:
Object {results: "success", message: "Your message have been sent successfully", error_id_array: Array[1]} error_id_array: Array[1] 0: "2" length: 1 __proto__: Array[0] message: "Your message have been sent successfully" results: "success" __proto__: Object
Мне нужно проверить массив под error_id_array