Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (Prototype, JSON) как лучше передать массив с данными (id и название)?... / 3 сообщений из 3, страница 1 из 1
18.01.2010, 10:30
    #36415324
однобитный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Prototype, JSON) как лучше передать массив с данными (id и название)?...
есть два селекта, в одном марка машины, в другом список моделей марки... при выборе марки селект с моделью очищается и на-лету заполняется соответствующими моделями... например:
выбираю в первом селекте toyota, во втором всё чистится и выводятся марки тойоты, например: corona, corolla, crown и т.д.

т.е. в первом селекте пользователь выбирает id_marki и данные отправляются в php-скрипт через Ajax:

Код: plaintext
1.
2.
3.
4.
5.
6.
// data - массив с данными вида data[id_model] = название модели

$data = Orders::getModelsByMark(Database::getInstance(), $id_marki);

header('Content-type: application/json; charset=utf-8');
echo json_encode($data);

а вот Ajax-скрипт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
// для вставки данных в селект с моделями
function AddSelectOption(selectObj, text, value, isSelected)
{
if (selectObj != null && selectObj.options != null)
{
selectObj.options[selectObj.options.length] =
new Option(text, value, false, isSelected);
}
}
// подчистка селекта с моделями и заполнение его данными
function ShowModels(value)
{
	new Ajax.Request('/ajax/models/',
	{
	method:'get',
	parameters: { id_marki: value },
	onSuccess: function(transport)
	{
	$('id_model').options.length =  0 ;

// вот тут и есть вопрос... как лучше пробежаться по transport.responseJSON, типа foreach в php, чтобы заполнить селект с моделями через AddSelectOption
// почему-то через transport.responseJSON.lenght не получается...

//	AddSelectOption($('id_model'), "модель", "id_модели", true);
//	AddSelectOption($('id_model'), transport.responseJSON['1'], "1", true);

	}
	}
	);
}

...
Рейтинг: 0 / 0
18.01.2010, 11:42
    #36415471
однобитный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Prototype, JSON) как лучше передать массив с данными (id и название)?...
однобитный,
пример моего json-а, может я тут не так делаю...
Код: plaintext
1.
{ 668 :"100 NX", 669 :"200 SX", 670 :"280 ZX", 671 :"300 ZX", 672 :"350 Z", 673 :"Almera", 674 :"Altima", 675 :"Armada", 676 :"Avenir", 677 :"Bassara", 678 :"Bluebird", 679 :"Cedric", 680 :"Cefiro", 681 :"Cherry", 682 :"Cima", 683 :"Crew", 684 :"Cube", 685 :"Datsun", 686 :"Elgrand", 687 :"Gloria", 688 :"Largo", 689 :"Laurel", 690 :"Leopard", 691 :"Liberty", 692 :"Lucino", 693 :"March", 694 :"Maxima", 695 :"Micra", 696 :"Moco", 697 :"Murano", 698 :"Navara", 699 :"Note", 700 :"Pathfinder", 701 :"Patrol", 702 :"PickUp", 703 :"Prairie", 704 :"Presage", 705 :"Presea", 706 :"President", 707 :"Primastar", 708 :"Primera", 709 :"Pulsar", 710 :"Qashqai", 711 :"Quest", 712 :"R Nessa", 713 :"Rasheen", 714 :"Safari", 715 :"Sentra", 716 :"Serena", 717 :"Silvia", 718 :"Skyline", 719 :"Stagea", 720 :"Stanza", 721 :"Sunny", 722 :"Teana", 723 :"Terrano", 724 :"Tiida", 725 :"Tino", 726 :"Urvan", 727 :"Vanette", 728 :"Wingroad", 729 :"X-Terra", 730 :"X-Trail"}
...
Рейтинг: 0 / 0
18.01.2010, 11:47
    #36415492
однобитный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Prototype, JSON) как лучше передать массив с данными (id и название)?...
разобрался, в JSON надо кодировать было по-уму просто:
Код: plaintext
1.
[{"id":"668","title":"100 NX"},{"id":"669","title":"200 SX"},{"id":"670","title":"280 ZX"},{"id":"671","title":"300 ZX"},{"id":"672","title":"350 Z"},{"id":"673","title":"Almera"},{"id":"674","title":"Altima"},{"id":"675","title":"Armada"},{"id":"676","title":"Avenir"},{"id":"677","title":"Bassara"},{"id":"678","title":"Bluebird"},{"id":"679","title":"Cedric"},{"id":"680","title":"Cefiro"},{"id":"681","title":"Cherry"},{"id":"682","title":"Cima"},{"id":"683","title":"Crew"},{"id":"684","title":"Cube"},{"id":"685","title":"Datsun"},{"id":"686","title":"Elgrand"},{"id":"687","title":"Gloria"},{"id":"688","title":"Largo"},{"id":"689","title":"Laurel"},{"id":"690","title":"Leopard"},{"id":"691","title":"Liberty"},{"id":"692","title":"Lucino"},{"id":"693","title":"March"},{"id":"694","title":"Maxima"},{"id":"695","title":"Micra"},{"id":"696","title":"Moco"},{"id":"697","title":"Murano"},{"id":"698","title":"Navara"},{"id":"699","title":"Note"},{"id":"700","title":"Pathfinder"},{"id":"701","title":"Patrol"},{"id":"702","title":"PickUp"},{"id":"703","title":"Prairie"},{"id":"704","title":"Presage"},{"id":"705","title":"Presea"},{"id":"706","title":"President"},{"id":"707","title":"Primastar"},{"id":"708","title":"Primera"},{"id":"709","title":"Pulsar"},{"id":"710","title":"Qashqai"},{"id":"711","title":"Quest"},{"id":"712","title":"R Nessa"},{"id":"713","title":"Rasheen"},{"id":"714","title":"Safari"},{"id":"715","title":"Sentra"},{"id":"716","title":"Serena"},{"id":"717","title":"Silvia"},{"id":"718","title":"Skyline"},{"id":"719","title":"Stagea"},{"id":"720","title":"Stanza"},{"id":"721","title":"Sunny"},{"id":"722","title":"Teana"},{"id":"723","title":"Terrano"},{"id":"724","title":"Tiida"},{"id":"725","title":"Tino"},{"id":"726","title":"Urvan"},{"id":"727","title":"Vanette"},{"id":"728","title":"Wingroad"},{"id":"729","title":"X-Terra"},{"id":"730","title":"X-Trail"}]
теперь всё в норме
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (Prototype, JSON) как лучше передать массив с данными (id и название)?... / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]