gpt4 book ai didi

drupal - 如何在drupal 7中的hook_form_validate()中访问表单数据

转载 作者:行者123 更新时间:2023-12-04 14:17:46 25 4
gpt4 key购买 nike

我有一个从 hook_form 实现的表单,名为 simplequiz_form() 我想在提交后访问它的数据 下面是我编写的代码,但一旦提交,我似乎无法访问它的数据。我究竟做错了什么 ?

function simplequiz_form_validate($form, &$form_state) {
// here is where we will validate the data and save it in the db.
$thid = db_insert('simplequiz')
->fields(array(

'questions' => &$form_state['question'],
**I can't seem to access the value of a field questions**

))
->execute();

return $thid;
}

下面是我对 hook_form() 的实现
function simplequiz_form($form, &$form_submit)
{

$form['question'] = array(
'#title' => t('Please input your question'),
'#type' => 'text_format',
'#required' => FALSE,
'#description' => t('Here is where you can enter your questions'),
);

$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Submit',
);
return $form;

}

如果我使用 $form_state['values']['question']

我收到以下错误:

PDOException:SQLSTATE[21S01]:插入值列表与列列表不匹配:1136 列计数与第 1 行的值计数不匹配:INSERT INTO {simplequiz}(问题)VALUES(:db_insert_placeholder_0_value,:db_insert_placeholder_0_format); simplequiz_form_submit() 中的数组( [:db_insert_placeholder_0_value] => [:db_insert_placeholder_0_format] => filters_html )(/home/vishal/Dropbox/sites/dev/sites/all/modules/simplequiz/simplequiz.module 的第 245 行)。

它使用 $form_state['values']['question']['value']

最佳答案

最佳做法是使用 hook_form_validate , 只是为了验证目的,除了验证之外的任何事情都应该在 hook_form_submit 中完成.

无论哪种方式,它们的功能都几乎相同。

所有表单数据都存储在$form_state['values'] ,以便访问 $form['questions']值,只需使用 $form_state['values']['questions'] .

关于drupal - 如何在drupal 7中的hook_form_validate()中访问表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8252893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com