注意:未定义的索引:element_validate_integer_positive()中的#value

时间:2013-11-05 01:50:42

标签: php drupal form-api

我在点击Notice: Undefined index: #value in element_validate_integer_positive() (line 4190 of includes\form.inc)的{​​{1}}或Upload之后收到错误Remove,即使该文件实际存储在正确的目录中也是如此。

以下是相关摘录:

managed_file

我正在使用PHP 5.3.6在XAMPP上运行实例。降级到PHP 5.2.9没有解决其他论坛中指出的问题。

当我使用Chrome检出ajax请求网址时,我会看到从$form['some_image'] = array( '#title' => t('Image'), '#type' => 'managed_file', '#description' => t('The uploaded image will be displayed on this page using the image style choosen below.'), '#default_value' => variable_get('some_image', ''), '#upload_location' => 'public://some_images/', ); 找到的file/ajax/image/file/form-wRaEJ-JRPqC7q6BSbp6Ccxi_9X1cpiaBzhwlIs9NFd0中看到的消息

  

错误消息发生了不可恢复的错误。上载的文件可能超过了此服务器支持的最大文件大小(512 MB)。

请注意,我只上传了一个100kb的文件。

/admin/reports/dblog的第4190行如下:

includes/form.inc

更新:事实证明问题不仅适用于function element_validate_integer_positive($element, &$form_state) { $value = $element['#value']; if ($value !== '' && (!is_numeric($value) || intval($value) != $value || $value <= 0)) { form_error($element, t('%name must be a positive integer.', array('%name' => $element['#title']))); } } ,还适用于表单本身。单击“提交”按钮会显示相同的错误。

目前,我的managed_file如下:

hook_form_validate

删除它会给我一个Drupal错误,说它应该在那里。我想我错过了一个其他钩子的实现,但我不知道哪个。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

事实证明问题来自于#type错误估价numericfield的同一表单的完全不同的字段。我必须删除所有表单字段并搜索它们中的哪一个导致错误。

单击managed_file按钮时,Upload字段似乎也会触发同一表单中所有其他字段的验证。