Обновление опции выбора формы с помощью Drupal 7 Form API - PullRequest
0 голосов
/ 12 марта 2012

Каждый из логотипов производителей, перечисленных ниже формы, должен (при щелчке) изменять значение параметра на то, что пользователь нажимает. Например: если пользователь щелкает изображение вулкана, форму необходимо обновить с помощью опции выбора VULCAN до ее отправки. Параметры формы заполняются запросом БД, который я перечислил в коде. Это отлично работает, так что никаких проблем нет.

Изображения производителя заполняются модулем Views. Для ясности я также включил изображение этих настроек.

Итак, мой вопрос: как можно дать этим изображениям производителей функциональность для изменения выбранного параметра? Мой PHP очень noob, но я предполагаю, что это как-то связано с изменением #default_value с помощью Form API?

Любая помощь будет оценена !!

View settings for Manufacturer Logos

This is a preview of the block I am working with.

function part_finder_form($form, &$form_state) {
  $options = part_finder_form_get_manufacturer_list();
  $form['manufacturer'] = array(
   '#prefix' => '<span class="right_arrow"></span>',
   '#type' => 'select',
   '#required' => TRUE,
   '#empty_option' => t('Start by selecting a manufacturer...'),
   '#options' => $options,

);
$form['submit'] = array(
   '#type' => 'submit',
   '#value' => 'Go',
);
return $form;
}

function part_finder_form_get_manufacturer_list() {
  $options = array();
  $results = db_query("SELECT nid, title FROM {node} WHERE type = :type", array(':type' => 'rep_manufacturers'));
  foreach ($results as $option) {
  $options[$option->nid] = $option->title;
}

return $options;
}

1 Ответ

1 голос
/ 13 марта 2012

Вы можете сделать это с помощью jQuery.

Вот пример кода.(в этом коде я предполагаю, что в заголовке изображения хранится значение, которое необходимо передать вашему выбору)

var images = jQuery('#image_wrapper img');
var select = jQuery('#manufacturer');
images.click(function()
{
select.val(jQuery(this).attr('title'));
});

Вы можете добавить этот код в отдельный файл javascript, а затем добавить его в формуиспользуя $ form ['# attach']

$form['#attached']['js'] = array('PATH_TO_JS_FILE');

Надеюсь, это сработает для вас

Мухаммед.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...