Здравствуйте! Начал темизировать сайт. Необходимо создать пустой select, а после загрузки страницы с помощью jQuery подгрузить данные json из файла.
Вот код селекта:
<?php
$form['name_opt']['font_select'] = array(
'#type' => 'select',
'#title' => t('Font of site name'),
'#id' => 'fontSelect',
'#default_value' => $settings['font_select'],
'#suffix' => '</span></span>',
);
?>
Вот код jQuery:
$('#fontSelect').empty();
var i = 0;
while(json.fonts[i])
{
$('#fontSelect').append('<option value="'+json.fonts[i]+'">' + json.fonts[i] + '</option>');
i++;
}
});
Вот файл fonts.json:
"fonts":[
"academy engraved let",
"algerian",
"amaze",
"arial",
"arial black"
],
"sizes":[
"1",
"2",
"3"
]
}
Все отлично подгружается, НО Drupal ругается:
warning: Invalid argument supplied for foreach() in Z:\home\PShop\www\includes\form.inc on line 1430.
А также у селекта не работает default_value когда сохраняешь настройки темы, хотя $settings['font_select'] стоит нужное значение...
Конечно можно и не подгружать файл, а прописать все в опшнах, но это слишком громоздко, если много информации, и хочется все сделать красиво. Заранее спасибо!)
Комментарии
Потом будет топик на тему, что друпал не воспринимает подгруженные знаничения, смотри в сторону AHAH, мей би там есть подходящее тебе событие
Спасибо, попробую)
просто не в кассу спрошу - а все-таки, что мешает заполнить опции селекта на стороне сервера, стандартными средствами Forms API?
а... звиняюсь, не дочитал.. ну тогда да, AHAH
Почитал про ahah - ничего не понял...((( Неужели обязательно нужно делать hook_menu и свой модуль писать? И каким образом вызвать ahah при загрузке формы? Я в документации нашел события click, blur и change для элементов формы. Извините за столько вопросов, просто привык к аяксу, а в ahah никак въехать не могу(