Цитата:
О теге <a> учту, но console.log(list['list'][key1]["ima"]) показывает так же 3 строки... |
Цитата:
Цикл-то у тебя идет не по list['list'][key1]["ima"] а по Цитата:
list['list'][key1][key2] |
Цитата:
|
Цитата:
Т.к. лучший вариант это сделать тестовый пример на котором можно что-то показать... А у вас просто куски какого-то не работающего кода. |
Цитата:
|
Есть запрос к БД:
$qr_result = mysql_query("select ket.district.id, ket.district.ima, count(marker.district) from district left join ket.marker on ket.marker.district = ket.district.ima group by district ORDER BY id;"); $qr_result2 = mysql_query("SELECT count(*) FROM `marker`;") or die(mysql_error()); $list = array(); //$alllist = array(); while($r = mysql_fetch_assoc($qr_result)) { $list['list'][] = $r; }; while($d = mysql_fetch_assoc($qr_result2)) { $list['allLIST'][] = $d; }; echo json_encode($list); //echo json_encode($alllist); ?> Ответ приходит в следующем виде: {"list":[{"id":"1","ima":"...","count(marker.district)":"1" }, .........., "allLIST":[{"count(*)":"6"}]} В аяксе хочу выводить только значения ima и count(marker.district), но выводится все это добро сразу три раза... При этом, при выводе ключа "allLIST":[{"count(*)":"6"}]} - все происходит нормально в этом куске кода: for (var key1 in list['allLIST']) { html+='<a class = "link" onclick="event.preventDefault()">'; for (var key2 in list['allLIST'][key1]) { html+='<li class = "big" onclick="alldistrict()")>Все районы  \(' + list['allLIST'][key1]['count(*)'] + "\)</li>"; } html+='</a>'; } console.log(html); $("ul.list").html(html); Собственно, вопрос в том, как пофиксить дублирование строк при выводе их из ассоциативного массива в цикле:) Пардон, скорее из объекта, а не массива |
Зачем этот цикл?
Цитата:
|
Начнем учить тебя как делать тестовый пример...
Цитата:
Цитата:
Т.е. привести 3-4 полновесных элемента (а у тебя один) для демонстрации Ну и потом показать пример хтмля, который хочешь получить на этих данных. Все! Тестовый пример готов. С ним можно будет работать. ;) |
Цитата:
Примеры 3-х элементов в list+allLIST: {"list":[{"id":"1","ima":"\u0421\u0432\u044f\u0442\u043e\u0 448\u0438\u043d\u0441\u043a\u0438\u0439","count(ma rker.district)":"1"}, {"id":"2","ima":"\u0413\u043e\u043b\u043e\u0441\u0 435\u0435\u0432\u0441\u043a\u0438\u0439","count(ma rker.district)":"1"}, {"id":"3","ima":"\u0414\u0430\u0440\u043d\u0438\u0 446\u043a\u0438\u0439","count(marker.district)":"0 "}, .......... "allLIST":[{"count(*)":"6"}]} Желаемый html-код: <li class = "big" onclick="findList(1)">Святошинский (0)</li> Тобишь: '<li class = "big" onclick="findList(' +КЛЮЧ id + ')">' + КЛЮЧ ima + " \(" + КЛЮЧ count(marker.district) + '\)</li>' |
Цитата:
А мне пришлось твою писанину еще и подправлять. Вот такой вариант получился. <!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <script src='http://code.jquery.com/jquery-latest.js'></script> <!-- <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> --> <style type='text/css'> </style> <script type='text/javascript'> var obj={ "list":[ { "id":"1", "ima":"\u0421\u0432\u044f\u0442\u043e\u0448\u0438\u043d\u0441\u043a\u0438\u0439", "count(marker.district)":"1" }, { "id":"2", "ima":"\u0413\u043e\u043b\u043e\u0441\u0435\u0435\u0432\u0441\u043a\u0438\u0439", "count(marker.district)":"1" }, { "id":"3", "ima":"\u0414\u0430\u0440\u043d\u0438\u0446\u043a\u0438\u0439", "count(marker.district)":"0 " } ], "allLIST":[ {"count(*)":"6"} ] }; $(function(){ var o=$('#test') for (var i=0; i<obj.list.length; i++) { var str='<li class = "big" onclick="alert(' + (i + 1) + ')">'; str=str + obj.list[i].ima + ' (' + obj.list[i]['count(marker.district)']; str=str + ')</li>'; o.append(str); }; }); </script> </head> <body> <ul id='test'></ul> </body> </html> Вот это и называется тестовым примером. :write: |
Часовой пояс GMT +3, время: 22:12. |