Эта строка
$.each(data[0].hotel_id, function (index, value) {
Прокручивает массив hotel_id
, выполняя внутренний код JS для каждой записи в индексе настроек словаря для ключа в словаре и значения для содержимого.
Мой словарь:
"hotel_id": [{
"hotel_id": ["1"]
}, {
"hotel_id": ["2"]
}, {
"hotel_id": ["3"]
}, {
"hotel_id": ["4"]
}],
Имеет все элементы с одинаковым индексом, поэтому значение индекса всегда будет 'hotel_id', что бесполезно для i, когда я пытаюсь использовать его для поиска соответствующих дополнительных данных из других моих словарей.
Я бы инициализировал счетчик перед первым циклом и увеличивал его на каждой итерации, а затем использовал бы это значение, чтобы найти связанные дополнительные данные из других массивов.
См. Полный код JS: http://pastebin.com/jBWEDZrN
Это сводка из моего js-кода в вызове ajax (url: 'get_gr',
):
$.each(data[0].hotel_id, function (index, value) {
var $li = $('<li><input name="hotel_id[]" value="' + value.hotel_id + '" style="display:none;"></li>');
var $tooltip = $('<div class="tooltip"></div>').appendTo($li);
$li.appendTo('#residence_name');
var info_ru = data[0].residence_u[index];
$.each(info_ru.units, function (index, value) {
$tooltip.append(value + ' & ' + info_ru.extra[index] + ' & ' + info_ru.price[index] + '<br>');
});
var info_rp = data[0].residence_p[index];
$.each(info_rp.start_date, function (index, value) {
$tooltip.append(value + ' & ' + info_rp.end_date[index] + ' & ' + info_rp.price_change[index] + '<br>');
});
tool_tip()
});
Это выходной php код (url: 'get_gr',
):
[{
"guide": null,
"hotel_id": [{
"hotel_id": ["1"]
}, {
"hotel_id": ["2"]
}, {
"hotel_id": ["3"]
}, {
"hotel_id": ["4"]
}],
"residence_u": [{
"units": ["hello", "how", "what"],
"extra": ["11", "22", "33"],
"price": ["1,111,111", "2,222,222", "3,333,333"]
}, {
"units": ["fine"],
"extra": ["44"],
"price": ["4,444,444"]
}, {
"units": ["thanks", "good"],
"extra": ["55", "66"],
"price": ["5,555,555", "6,666,666"]
}],
"residence_p": [{
"start_date": ["1111", "2222"],
"end_date": ["1111", "2222"],
"price_change": ["1111", "2222"]
}, {
"start_date": ["3333", "444"],
"end_date": ["3333", "4444"],
"price_change": ["3333", "4444"]
}, {
"start_date": ["5555", "6666"],
"end_date": ["5555", "6666"],
"price_change": ["5555", "6666"]
}]
}]
Что мне делать?
Обновление: (это обновление для вышеуказанного php)
Я вставляю несколько (array
) значений с json_encode
в одну строку из таблицы базы данных, теперь хочу, чтобы они отображались как порядок с jquery.
Выходной код js:
1
hello
& 11
& 1,111,111
how
& 22
& 2,222,222
what
& 33
& 3,333,333,
1111
& 1111
& 1111
2222
& 2222
& 2222
2
fine
& 44
& 4,444,444
3333
& 3333
& 3333
4444
& 4444
& 4444
3
thanks
& 55
& 5,555,555
good
& 66
& 6,666,666
5555
& 5555
& 5555
6666
& 6666
& 6666
4