如何通过url将选择列表的值传递给表单?

时间:2012-11-17 13:00:51

标签: drupal drupal-7 drupal-forms

我正在尝试使用带有以下HTML标记的表单URL发送选择列表的值。

<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>

表单网址为http://www.example.com/node/add/deal

如何将值26发送到表单?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用专为此目的而考虑的Prepopulate模块。

如项目页面中所示,http://example.com/node/add/blog?edit[title]=this%20is%20the%20title之类的网址会预先填充标题这是标题

该模块可以与所有表单一起使用,并且具有正式版本(2017年8月6日)5004 sites使用。

在2013年1月1日之前,模块的使用情况如下。

  

screenshot

截至2017年8月18日,Drupal 6模块的使用量减少,因为Drupal 6不再正式支持,但由于在Drupal 7和Drupal 8站点中的使用,总使用量略有增加。

  

screenshot

答案 1 :(得分:0)

如果您访问“www.mysite.com/node/add/deal/26”,将打印以下代码。网址中传递的数字为: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;
}