Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 7 drupal默认值未应用于drupal\u渲染中的选择选项_Drupal 7_Render_Default Value_Drupal Forms_Drupal Render - Fatal编程技术网

Drupal 7 drupal默认值未应用于drupal\u渲染中的选择选项

Drupal 7 drupal默认值未应用于drupal\u渲染中的选择选项,drupal-7,render,default-value,drupal-forms,drupal-render,Drupal 7,Render,Default Value,Drupal Forms,Drupal Render,我尝试在表单中打印drupal“select option”元素。我认为drupal渲染没有应用默认值。除了未应用默认值之外,一切都正常。 问题出在哪里?有人知道我怎么做吗? 默认值是否接受字符串值 这是我的伪代码: 我测试了textfield,但它也不起作用,并且在drupal_渲染中不接受默认值 $f['test3']=array( '#type'=>'textfield', '#title'=>'test3', '#default_value'

我尝试在表单中打印drupal“select option”元素。我认为drupal渲染没有应用默认值。除了未应用默认值之外,一切都正常。 问题出在哪里?有人知道我怎么做吗? 默认值是否接受字符串值

这是我的伪代码:

我测试了textfield,但它也不起作用,并且在drupal_渲染中不接受默认值

    $f['test3']=array(
    '#type'=>'textfield',
    '#title'=>'test3',
    '#default_value' =>'aaa',
);

我想这是因为使用drupal_render。有人有解决方案吗?

如果您查看中的示例,您将看到选项设置采用键值对数组,并且在默认_值中,您应该指定默认值的键,而不是字符串值

此外,根据,选项需要字符串值。因此,您的选择应该更像:

$f['type'] = array(
   '#type' => 'select',
   '#options' => drupal_map_assoc(array('1','2','3','4')),
   '#default_value'=> '1',
);

在Drupal_get_表单中使用的Drupal_渲染中,默认值未设置use必须使用它的值instaed

$f['type'] = array(
'#type' => 'select',
'#options' => drupal_map_assoc(array('1','2','3','4')),
'#value'=> '1',
);

以下代码不起作用:

$form['title'] = array(
'#type' => 'select',
'#options' => drupal_map_assoc(array(t('opt1'), t('opt3'), t('opt4'), t('opt5'), t('opt6'))),
'#default_value' => array($default_value_key));


$form['title1'] = array(
'#type' => 'select',
'#options' => drupal_map_assoc(array(t('opt1'), t('opt3'), t('opt4'), t('opt5'), t('opt6'))),
'#default_value' => array($default_value_key));

return $form;
但后来我做了以下几件事:

$form['group'] = array('#tree' => TRUE);

$form['group']['title'] = array(
'#type' => 'select',
'#options' => drupal_map_assoc(array(t('opt1'), t('opt3'), t('opt4'), t('opt5'), t('opt6'))),
'#default_value' => array($default_value_key));


$form['group']['title1'] = array(
'#type' => 'select',
'#options' => drupal_map_assoc(array(t('opt1'), t('opt3'), t('opt4'), t('opt5'), t('opt6'))),
'#default_value' => array($default_value_key));

return $form;

默认值现在可以工作了。

我也有同样的问题。最后,我找到了一种方法。正如您所说,默认的_值不起作用。因此,将默认的_值固定为0。并更改选项数组,将默认值放在顶部。

。它不适用于drupal\u渲染。在我的orgin代码中,我设置了数组键。问题是drupal\u get\u表单中使用的“drupal\u render”未设置默认值。这很危险,因为用户将无法覆盖提交的值说明:用于设置用户无法编辑的值。不应与默认值混淆,默认值用于表单输入,用户可以覆盖默认值。非常感谢,这个答案是正确的,解决了我的问题stuck@TrungLeNguyenNhat不客气,我很高兴看到我的答案在几年后可以帮助其他人:在使用该选项时,人们应该注意的一点是,autocomplete属性应该设置为“off”,否则Firefox不会将所选选项显示为选中。
$form['group'] = array('#tree' => TRUE);

$form['group']['title'] = array(
'#type' => 'select',
'#options' => drupal_map_assoc(array(t('opt1'), t('opt3'), t('opt4'), t('opt5'), t('opt6'))),
'#default_value' => array($default_value_key));


$form['group']['title1'] = array(
'#type' => 'select',
'#options' => drupal_map_assoc(array(t('opt1'), t('opt3'), t('opt4'), t('opt5'), t('opt6'))),
'#default_value' => array($default_value_key));

return $form;