Как я могу передать значение списка выбора в форму по URL-адресу?

Я пытаюсь отправить значение списка выбора с URL-адресом формы со следующей разметкой HTML.

<select class="form-select" name="field_with_contact[und]" id="edit-field-with-contact-und"><option value="_none">- None -</option><option value="26">Rawhi Pharmacy</option></select>

URL-адрес формы: http://www.example.com/node/add/deal.

Как я могу отправить значение 26 в форму?

Спасибо


person Mohammad Ereiqat    schedule 17.11.2012    source источник
comment
что значит отправить значение в форму? Вы имеете в виду отправить значение на сервер? Вы имеете в виду отправить значение через строку запроса?   -  person Neil McGuigan    schedule 17.11.2012


Ответы (2)


Вы можете использовать модуль Prepopulate, который предназначен именно для этой цели.

Как показано на странице проекта, URL-адрес типа http://example.com/node/add/blog?edit[title]=this%20is%20the%20title будет предварительно заполнять заголовок это заголовок.

Модуль можно использовать с любой формой, и у него есть официальный выпуск, который используется (6 августа 2017 г.) с 5004 сайта.

До 1 января 2013 года использование модуля было следующим.

скриншот

По состоянию на 18 августа 2017 года использование модуля для Drupal 6 уменьшилось, поскольку Drupal 6 официально больше не поддерживается, но общее использование немного увеличилось благодаря его использованию на сайтах Drupal 7 и Drupal 8.

скриншот

person apaderno    schedule 19.11.2012

Если вы перейдете на «www.mysite.com/node/add/deal/26», будет напечатан следующий код. Число, переданное в URL, было: 26

Вот код:

function my_module_menu()
{
    $items = array();


    $items['node/add/deal/%'] = array(
        'title'           => 'Add deal',
        'page callback'   => 'drupal_get_form',
        'page arguments'  => array('node_add_deal_form', 3),
        'access callback' => array(TRUE),
        'type'            => MENU_CALLBACK,
    );

    return $items;
}

function node_add_deal_form($form, &$form_state, $number)
{
    $form = array();

    $form['number'] = array(
        '#markup' => '<p>The number passed in url was: '. $number. '</p>',
    );

    return $form;
}
person Triss    schedule 29.04.2016