Php 为什么drupal_render($form)不能正确渲染收音机类型?

Php 为什么drupal_render($form)不能正确渲染收音机类型?,php,drupal,forms,drupal-6,Php,Drupal,Forms,Drupal 6,我尝试使用渲染单个表单元素。我可以成功呈现'type'=>'textfield'或'radio'或'whatever'的元素 当我尝试渲染“type”=>“radios”元素时,出现了一些问题。我找不出原因,但是简单的收音机不能显示 $options = array( '0' => 'no option', '1' => 'option 1', '2' => 'option 2', '3' => 'option 3', '4' =&

我尝试使用渲染单个表单元素。我可以成功呈现'type'=>'textfield'或'radio'或'whatever'的元素

当我尝试渲染“type”=>“radios”元素时,出现了一些问题。我找不出原因,但是简单的收音机不能显示

$options = array(
    '0' => 'no option',
    '1' => 'option 1',
    '2' => 'option 2',
    '3' => 'option 3',
    '4' => 'option 4',
    '5' => 'option 5'
);

$form['radiosinput'] = array(
    '#type'             => 'radios',
    '#title'            => 'radios title',
    '#description'      => 'radios description',
    '#default_value'    => 0,
    '#options'          => $options,
    '#required'         => TRUE,
);

var_dump( drupal_render($form) );

// string(257) "<div class="form-item">
//     <label>radios title: <span class="form-required" title="This field is required.">*</span></label>
//     <div class="form-radios"></div>
//     <div class="description">radios description</div>
//     </div>
// "
有人知道问题所在和解决方法吗? 渲染收音机或其他东西是否存在已知问题


谢谢

一小时前我正在做类似的事情。你的代码粘贴到我的表单中效果很好

试一试

drupal获得“你的形式id”


这样行吗?

一小时前我正在做类似的事情。你的代码粘贴到我的表单中效果很好

试一试

drupal获得“你的形式id”


这行得通吗?

如果没有表单,则无法呈现表单元素,因为该radios元素有一个form\u process\u radios的进程回调,只有在与表单API一起使用时才会调用该回调

您可以尝试以下方法:

$form['radiosinput'] = expand_radios($form['radiosinput']);
return drupal_render($form);

不能在没有表单的情况下呈现表单元素,因为radios元素具有form\u process\u radios的进程回调,该回调仅在与表单API一起使用时调用

您可以尝试以下方法:

$form['radiosinput'] = expand_radios($form['radiosinput']);
return drupal_render($form);

我想在表中呈现的checkbox元素也有同样的问题。我发现你的答案有点晚了

因此,对于所有其他搜索,如何使用和呈现复选框元素:


我想在表中呈现的checkbox元素也有同样的问题。我发现你的答案有点晚了

因此,对于所有其他搜索,如何使用和呈现复选框元素:


我可以补充一点,在D6中,您需要向radios元素添加parents=>array。
在我的例子中,如果否,expand_radios将抛出一个错误。Drupal 6.22

我可能会添加,在D6中,您需要将parents=>数组添加到radios元素。
在我的例子中,如果否,expand_radios将抛出一个错误。Drupal 6.22

对于D7,请使用表单处理复选框

对于D7,请使用表单处理复选框

谢谢,但我没有呈现表单,只是呈现特定元素。。。如果我将其包含在表单中,代码也可以正常工作。@andre matos了解为什么在没有表单的情况下呈现单选按钮可能会有所帮助。您是否可以通过主题层运行表单元素?theme_收音机之类的…谢谢,但我不是在渲染表单,只是那个特定的元素。。。如果我将其包含在表单中,代码也可以正常工作。@andre matos了解为什么在没有表单的情况下呈现单选按钮可能会有所帮助。您是否可以通过主题层运行表单元素?主题无线电或其他东西…形式处理是D7特有的。我正在寻找D6解决方案。无论如何,谢谢。啊,然后使用$form['radiosinput']=expand_radios$form['radiosinput'];请用这些信息更新您的答案,我会接受的!:drupal_renderexpand_radios$表单['radiosinput'];完成了任务。谢谢。表格和流程是D7特有的。我正在寻找D6解决方案。无论如何,谢谢。啊,然后使用$form['radiosinput']=expand_radios$form['radiosinput'];请用这些信息更新您的答案,我会接受的!:drupal_renderexpand_radios$表单['radiosinput'];完成了任务。谢谢。这在Drupal7中的等价物是什么?在Drupal7中的等价物是什么?