【问题标题】:drupal 6 module programming semantic errordrupal 6模块编程语义错误
【发布时间】:2012-10-19 16:13:42
【问题描述】:

我应该编写一个简单的模块(不使用 WebForms)来制作获取数据的表单。 但是我的表单元素没有显示。 我使用的是 drupal 6.0 文档,但我不知道出了什么问题!

这是我的源代码的link

我收到错误消息:警告:第 29 行 /var/www/drupal/sites/all/modules/registeration/registration.module 中的 registration_register_form() 缺少参数 2。

但我写的是正确的论点。

【问题讨论】:

    标签: php drupal drupal-6 ahah


    【解决方案1】:

    您不需要在大多数*表单中传递$form$form_state

    试试这个:

    function registration_register_form(){
    

    代替:

    函数registration_register_form($form, &$form_state){

    背景:drupal_get_form 将任何给定参数传递给registration_register_form(),但在registration_all() 中,您不会传递任何额外参数。 (只是表单函数的回调)。

    请注意,您仍然需要在提交函数中传递$form$form_state,因为registration_register_form_submit() 使用$form_state 的数据。

    *大多数情况: 如果您的表单是多步表单并且表单在 $form_state 变量的值上发生变化,那么这是一个很好的用例,您确实需要将 $form 和 $form_state 传递给 registration_register_form()

    更新 检查您的代码后,我发现 很多 错误。 查看新版本:http://pastebin.com/VNa3veFR(未列出) 我已经纠正了我能注意到的大部分问题。请参阅函数名称上方的内联 cmets 和注释块。

    【讨论】:

    • 我的问题已解决,但是当我将 id 字段留空时又出现另一个错误,我收到此错误:发生错误。 /drupal/?q=registration/js_idcheck.我更改了空 id 字段的 js_idcheck 函数。新代码在这里 [link]pastebin.com/2cSqZx10
    • 当我在 ID 字段中输入一些数字时出现此错误:发生 HTTP 错误 500。/drupal/?q=registration/js_idcheck 当我提交表单时,我在后台收到 500 HTTP 错误.我认为 js_idcheck id 中的 $form_state 不正确,我使用了 $_POST['id'] 但结果没有变化。
    • pastebin.com/nuusAv9F 但是,我建议在开始认真的 Drupal 工作之前阅读一本包含一些 API 信息的 Drupal 书籍。您的代码有一些 sql 注入的可能性,并且不遵循 Drupal 编码标准。到时候你会瘦下来,但最好尽早开始使用它们。如果您不确定任何功能,请参考 php.net 手册和/或 api.drupal.org
    • 也许您可以阅读这篇关于#ahah 的精彩文章。抱歉,$form_state 没有用。到这个功能。我的错。 randyfay.com/ahah
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多