Drupal 6,FAPI表单提交了两次,为什么?

问题描述

| 使用此代码:
drupal_set_message(\'form id: \' .$form_id. \' send with \'. $delta . \' and field: \'. $field);
我注意到,每当我单击£send \“按钮时,表单都会提交两次,因此我看到如下内容:   表单ID:formname2发送3和   字段xxx表单ID:formname2发送   4和字段xxx $ delta是一个变化的cdel多组字段的变化量(我正在将新字段插入cck内容)。这是提交功能:
function IngredientsForm_submit($form,&$form_state){
    global $user;
    $ls_id = $user->ls_id;
    $current_ls = node_load($ls_id);    
    $delta = $form_state[\'values\'][\'delta\'];
    $field = $form_state[\'values\'][\'field_name\'];
    $form_id = $form_state[\'values\'][\'form_id\'];
    $current_ls->field_descrizione_ingrediente[$delta][\'value\'] = $field;
    drupal_set_message(\'form id: \' .$form_id. \' send with delta: \'. $delta . \' and field: \'. $field);
    node_save($current_ls);             
}
奇怪的是,似乎只有第一次提交的东西才保存在数据库中,所以保存的数据是正确的... 知道为什么要重复提交吗?     

解决方法

我将检查form变量,看看是否多次列出了commit函数。这可能是$ form [\'#submit \']或$ form [\'buttons \'] [\'submit \'] [\'#submit \'],具体取决于这是自定义表单还是默认表单节点形式。 似乎两次调用了commit函数,但是node_save正在执行更新而不是插入操作,因此数据库看起来正确。 如果没有看到重复的提交处理程序,则可以发布构建/更改表单的代码。     ,我遇到过相同类型的问题,我认为这是drupal流程形成的方式。如果您移动以下行
drupal_set_message(\'form id: \' .$form_id. \' send with delta: \'. $delta . \' and field: \'. $field);\"
保存数据后,将其放入提交功能后,您会发现该消息只会显示一次。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...