【发布时间】:2011-03-22 00:55:43
【问题描述】:
关于堆栈溢出的第一篇文章......所以放轻松!
对于简单表单提交的 Drupal FAPI 多重回调问题似乎没有合适的解决方案。
问题:我的表单在提交时向各自的数据库表中添加了两个条目。鉴于只有一次调用将其添加到数据库中,我认为可以安全地假设查询运行两次(因此有两个条目)。
以下代码可能有助于为解决方案提供基础。哦,它也是 Drupal 7,所以文档仍然非常以 D6 为中心。
function mymodule_sidebar_form_add_submit(&$form, &$form_state) {
$form_values = $form_state['values'];
$se_title = check_plain(trim($form_values['title']));
$se_link = url(trim($form_values['link']));
$se_content = check_plain(trim($form_values['content']));
$se_image = isset($form_values['image']) ? $form_values['image'] : '';
// The multi-line part below is actually a single line the real code
$query = sprintf("INSERT INTO sidebar_element(title, image_url, content)
VALUES ('%s', '%s', '%s');", $se_title, $se_image, $se_content);
db_query($query);
drupal_set_message(t('Sidebar Element has been added successfully.'));
}
...我的表单函数包含一个提交按钮:
$form['submit'] = array(
'#value' => t('Add Sidebar'),
'#type' => 'submit',
'#title' => t('Add Sidebar'),
'#submit' => array('mymodule_sidebar_form_add_submit'),
);
我想我需要回答的问题是:
- 首先为什么会有双重回调?
- 有没有办法识别第一个回调?
在此先感谢大家。
【问题讨论】:
标签: drupal drupal-modules drupal-7 drupal-fapi