【问题标题】:Setting value after returing form in Drupal在 Drupal 中返回表单后设置值
【发布时间】:2012-01-06 12:53:39
【问题描述】:

我生成了表格:

function test_form($form_state) {    

  $form['hidden'] = array(    

    '#type' => 'hidden',

  );   


  $form['submit'] = array(

    '#type' => 'submit',

    '#value' => 'Save'

  );   


  return $form;

}

之后我有一个循环:

foreach($ea as $name){



$test_form = drupal_get_form('test_form');



$output .= $name->name . drupal_render($test_form);



}

它应该以某种方式安排每次执行循环时,隐藏在 test_form 中的值是 $name->name?可以用 form_set_value($element, $value, &$form_state) 做点什么吗?

【问题讨论】:

    标签: php forms drupal drupal-render


    【解决方案1】:

    最好将名称作为参数传递给函数:

    function test_form($form_state, $name) {    
    
      $form['hidden'] = array(    
    
        '#type' => 'hidden',
        '#value' => $name
      ); 
    
      //...
    }
    
    foreach ($ea as $name) {
      $test_form = drupal_get_form('test_form', $name->name);
    
      $output .= $name->name . drupal_render($test_form);
    }
    

    【讨论】:

    • 谢谢,但是在隐藏值中显示 和 drupal 抛出错误 注意:数组到字符串的转换在 drupal_attributes()
    • 您必须将数组传递给函数,只需将其更改为传递字符串即可
    • 谢谢我解决了问题,只需要在表单函数“test_form($form, &$form_state, $name)”中添加&$form_state
    猜你喜欢
    • 1970-01-01
    • 2019-05-16
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 2015-04-29
    相关资源
    最近更新 更多