好吧,我终于想出了如何通过form API
Drupal 添加(或编辑)表单控件.
但现在,我想在表单中添加文字.不是<textarea>
,不是<textfield>
; 两者都可以由用户编辑.我想补充一下<p>static text</p>
,由我写的,由用户阅读.
如何做到这一点?
我在Drupal 7中创建了一个表单并希望使用AJAX.我将其添加到提交按钮数组:
"#ajax" => array(
"callback" => "my_callback",
"wrapper" => "details-container",
"effect" => "fade"
)
Run Code Online (Sandbox Code Playgroud)
这有效,但忽略了整个验证功能.如何在my_callback()
调用之前验证表单?如何在AJAX表单上显示状态或错误消息?
我正在构建一个表单模块.其中一个早期字段是一组单选按钮.默认情况下,选择第一个按钮.接下来我将有一系列选择框.一个人需要看得见,其他人看不见.然后,当用户选择不同的单选按钮时,我希望显示或隐藏不同的选择框.如何在默认情况下隐藏字段和标签,并在以后根据选择哪个单选按钮(或其他选择框选项)显示它?
我试图有一个按钮不是"提交"类型的按钮,而是一个普通的"按钮"类型,使用drupal 7的形式api,但我似乎无法得到它.
我尝试了很多东西,比如将#type设置为'button',将#button_type设置为'button',但无论我做什么,drupal总是创建一个"submit"类型的按钮.
我们的成员列表中的某些用户附加了角色"供应商".所有这些成员在登录时都会被重定向到某个页面.如何实现这一目标?
我做了一个自定义的Drupal模块.在其中我创建了一个块和一个表单.如何使表单显示在块内容中?干杯.
区号:
function module_block($op = 'list', $delta = 0, $edit = array()) {
$block = array();
if ($op == "list") {
// Test
$block[0]["info"] = t('Block');
}
else if ($op == 'view') {
$block['content'] = module_function();
}
return $block;
}
// End module_block
Run Code Online (Sandbox Code Playgroud)
表格代码:
function module_my_form($form_state) {
$form['email'] = array(
'#type' => 'textfield',
'#title' => t('Email'),
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Submit',
);
return $form;
}
Run Code Online (Sandbox Code Playgroud)
再次欢呼,任何帮助.
我正在Drupal创建一张信用卡表单.我需要一个日期选择字段,用户可以在其中选择信用卡到期日期,该日期仅包括月份和年份.
Drupal表单#type
'date'生成一个日期选择器,它有day-month-year
选项.我只需要month-year
.有帮助吗?
我尝试的形式打印Drupal的选择选项'元素.我觉得drupal_render
不适用#default_value
.每天的事情是确定的,除了#default_value
不适用.
问题在哪里?有谁知道我怎么做到这一点?不#default_value
接受string
的价值?
这是我的代码伪:
function test_menu(){
$items=array();
$items['admin/config/regional/test']=array(
'title' => 'test',
'description' => t('test'),
'page callback' =>'drupal_get_form',
'page arguments' => array('test_function'),
);
$items[]=array();
return $items;
}
function test_function(){
$header = array
(
'test1' => t('test1'),
'test2'=> t('test2'),
);
$a=(1,2,3);
$$options=array();
foreach($a as $i=>$v)
{
$f['type'] = array(
'#type' => 'select',
'#options' => array(1,2,3,4),
'#default_value'=>1,
);
$options += array($name=>array( 'test1' => $v,
'test2'=> drupal_render($f['type']) ,
}
$form['table'] = array
(
'#type' => …
Run Code Online (Sandbox Code Playgroud) 是否可以在复选框的标签/标题中添加简单的html链接?我尝试了以下代码:
<?php
$form['legal']['#type'] = 'checkbox';
$form['legal']['#required'] = TRUE;
$form['legal']['#title'] = t(
'You must accept our @tos and @legals',
array(
'@tos' => l(t('terms of service'), 'node/6'),
'@legals' => l(t('legals'), 'node/7')
)
);
?>
Run Code Online (Sandbox Code Playgroud)
但是这会产生以下标签(html标记不是"翻译"):
"你必须接受我们的<a href ="/ node/6">服务条款</ a>和<a href ="/ node/7"> legals </ a>*"
(我在开口括号后添加了空格,以便它不会转换为我想要的链接)
这样的事情不可能吗?我是drupal的新手.也许有人可以帮助我...谢谢!
我正在学习drupal 8.我想创建一个包含'two dimensionnal''添加另一个项目'表单的页面.我的代码几乎运行良好,但是当我向房子添加房间时我有一个奇怪的行为(我的调试日志中有一个来自FormStateInterface :: getTriggeringElement()的奇怪值,请参见底部的代码和日志)
第一:我有两个结构,房子和房间.用户可以创建一些房屋,每个房子,他可以创建一些房间:
当我添加一些房子,表格工作正常:
当我将一些房间添加到最后一个房子时,表格也可以正常工作:
但是,当我向任何"没有最后"的房子添加一些房间时,表格不能正常工作(在屏幕截图中,我点击了一次"阻止房屋"中的"添加房间",标签为"房子1"成了"房子2"(?!),点击添加5个房间(?!):
这里是我的代码和一个奇怪的调试日志,我不解释为什么我得到这个值(来自room_addMoreSubmit回调中的getTriggeringElement(),这是我认为的问题)
<?php
namespace Drupal\projet\Form;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
class HouseForm extends FormBase {
public function getFormId(){
return 'custom_rooms_form';
}
function buildForm(array $form, FormStateInterface $form_state) {
$house_count = $form_state->get('house_count');
if (is_null($house_count)) {
$house_count = 1;
$form_state->set('house_count', $house_count);
}
$form['house'] = array(
//'#tree' => TRUE,
'#prefix' => '<div id="house-replace">',
'#suffix' => '</div>'
);
for ($house_delta = 0; $house_delta < $house_count; $house_delta++) {
if (!isset($form['house'][$house_delta])) {
$room_count[$house_delta] = $form_state->get('room_count_'.$house_delta);
if (is_null($room_count[$house_delta])) {
$room_count[$house_delta] = …
Run Code Online (Sandbox Code Playgroud) drupal-forms ×10
drupal ×7
drupal-7 ×5
drupal-fapi ×3
ajax ×1
api ×1
drupal-6 ×1
drupal-8 ×1
drupal-ajax ×1
forms ×1
jquery ×1
php ×1
render ×1