Drupal的模块开发中的$form和$form_state参数。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Drupal的模块开发中的$form和$form_state参数。相关的知识,希望对你有一定的参考价值。
在Drupal的模块开发中经常用到这两个参数,但是我不知道这两个参数到底是什么意思呢?每个参数都是一个数组,每个数组里面都包含了些什么内容?
前面一个是 包含当前form 的所有表单元素 包括submit action, buttons, theme 等等.后面一个就比较复杂了, 所有的form 表单提交行为都将作为参数 进入这个array 去处理.
简而言之,前面一个是初始form 的元素,由它确定了html 中form 的实际结构
form_state包含了所有表单提交行为 flag, 当然提交后也将包括处理完的$_post所有内容
当然经过 validate, submit 等还可以进行使用custom code 去修改form_state中内容.
如果是drupal 6 的话 可以看下
drupal_process_form这个函数.表单的提交是通过这个函数作处理的 几乎所有的hook 都是从这里去调用的 参考技术A 到官网hook_form那里查一下看看。
$form_state 好像是包含表单值等。$form好像是建表单,设置表单什么样。
函数的参数单拿出来,不能看出是什么意思的。只能看它在哪个函数里的意思。
Drupal表单找不到页面
我在模块下启用了一个表单,但是访问该页面会出现“找不到页面”错误。
网站/默认/模块/ awesome_form / awesome_form.module
function awesome_form_menu(){
$items['my-new-form'] = array(
'title' => 'simple form',
'type' => MENU_NORMAL_ITEM,
'page callback' => 'drupal_get_form',
'page arguments' => array('show_form_callback'),
'access arguments' => array('access content'),
'file' => 'application_file.inc'
);
return $items;
}
网站/默认/模块/ awesome_form / application_file.inc
function show_form_callback($form, &$form_state){
$form['test_input'] = array(
'#type' => 'textfield',
'#required' => TRUE,
'#title' => 'Name'
);
return $form;
}
网站/默认/模块/ awesome_form / awesome_form.info
name = Awesome Form
description = Some Test Form
core = 7.x
当我浏览到mysite.com/my-new-form
时,我收到“找不到页面”错误。我还在模块下启用了“Awesome Form”模块。然而同样的问题。
答案
您的模块只是在干净安装上进行测试。我唯一没做的就是打开模块文件和.inc文件中的php标签,就是这样。一切都按预期工作。
以上是关于Drupal的模块开发中的$form和$form_state参数。的主要内容,如果未能解决你的问题,请参考以下文章