Доброго времени суток уважаемые форумчане. Столкнулся с проблемой. Пишу компонент мини - биллинга . Если в двух словах : грубо говоря простой учет абонентов (маленький провайдер, маленькие амбиции), таблица пользователей и как их баланс. Собственно задача : на странице списка абонентов я хочу реализовать фильтр по параметрам улица и номер квартиры с обновлением списка пользователей через AJAX.
Сейчас я могу отфильтровать пользователей по какому - либо параметру и обновить данные в таблице (вывести 1 запись которая будет соответствовать условию). Однако мне нужно будет выводить не 1 запись а несколько. В суб контроллере есть метод (прошу палками не бить, все сыро и на стадии проб и ошибок) который срабатывает на AJAX запрос :
public function getListFilter(){
//$id =$_POST['arr'];
$street =$_POST['arr'];
//$dom =$_POST['dom'];
// выбираем данные о пользователе из БД
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('a.* , b.id AS tarif_id, b.name AS tarif_name, c.id AS tarif_dom_id, c.name AS tarif_dom_name, d.id AS street_id, d.name AS street_name');
$query->from('`#__clients` AS a');
$query->join('LEFT', '#__clientstarif AS b ON (a.tarif_tv = b.id)');
$query->join('LEFT', '#__clientstarif AS c ON (a.tarif_domophone = c.id)');
$query->join('LEFT', '#__clientsadres AS d ON (a.adress = d.id)');
if ($street) {
$query->where('a.adress = ' . $street);
}
//$query->where('a.id = ' . $id);
$db->setQuery($query);
$list = $db->loadObjectList();
// обрабатываем данные и готовим для вывода
if ($list){
foreach($list as $result){
$name = '<a href="index.php?option=com_clients&task=item.edit&id='.$result->id.'">'.$result->name.'</a>';
$adress = $result->street_name." / ".$result->dom;
$phone1 = $result->phone1;
$phone2 = $result->phone2;
if($result->status_tv == '0') {
$status_tv = '<span class="label label-default">Услуга не подключена</span>';
}elseif($result->status_tv == '1'){
$status_tv = '<span class="label label-success">Активен</span>';
}elseif($result->status_tv == '2'){
$status_tv = '<span class="label label-important">Задолженность</span>';
}elseif($result->status_tv == '3'){
$status_tv = '<span class="label label-info">Заморожен</span>';
}elseif($result->status_tv == '4'){
$status_tv = '<span class="label label-warning">Отключен</span>';
}
if($result->status_domophon == '0') {
$status_domophon = '<span class="label label-default">Услуга не подключена</span>';
}elseif($result->status_domophon == '1'){
$status_domophon = '<span class="label label-success">Активен</span>';
}elseif($result->status_domophon == '2'){
$status_domophon = '<span class="label label-important">Задолженность</span>';
}elseif($result->status_domophon == '3'){
$status_domophon = '<span class="label label-info">Заморожен</span>';
}elseif($result->status_domophon == '4'){
$status_domophon = '<span class="label label-warning">Отключен</span>';
}
$tarif_name = $result->tarif_name;
$tarif_dom_name = $result->tarif_dom_name;
$client_comment = $result->comment;
}
}
// формируем ответ в JSON
echo json_encode( array(
'adress' => "$adress"
, 'name' => "$name"
, 'phone1' => "$phone1"
, 'phone2' => "$phone2"
, 'status_tv' => "$status_tv"
, 'tarif_name' => "$tarif_name"
, 'status_domophon' => "$status_domophon"
, 'tarif_dom_name' => "$tarif_dom_name"
, 'client_comment' => "$client_comment"
) );
exit;
}
Собственно в виде есть скрипт который посылает и принимает результат работы суб контроллера и выводит в нужных блоках. Однако это все работает для 1 записи. По этому вопрос : как передать массив через Json и как его разобрать используя AJAX ?То есть как передать массив и его уже в виде разобрать в цикле при этом все это будет на аяксе. Или я могу как это это разобрать в суб контроллере ?(тогда как?) В общем ступор, листаю доки и прошу помощи у вас.