Цитата:
О теге <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, время: 18:48. |