【问题标题】:How to create a simple ajax form in Drupal 7?如何在 Drupal 7 中创建一个简单的 ajax 表单?
【发布时间】:2012-10-22 15:37:45
【问题描述】:

我想在 Drupal7 中创建一个只有一个字段的简单表单。点击提交按钮时,我需要使用字段值调用 ajax 函数并更新页面上的 DIV 而无需重新加载。

我不熟悉 Drupal 表单 API,我尝试从表单 api 文档中实现示例,但我总是收到如下错误:

Notice: Undefined index: #title_display form_pre_render_conditional_form_element() függvényben (/var/www/nmtest/includes/form.inc 2986 sor). Notice: Undefined index: #value theme_textarea() függvényben /var/www/nmtest/includes/form.inc 3727 sor).

我可以通过创建自定义页面并简单地使用原生 PHP 来做到这一点,但这不是一种“优雅”的方式。

我想要类似这里的东西,但没有表单验证,页面重新加载左右:Create a VERY simple form in Drupal

我只想要一个调用 ajax 函数的按钮。我应该使用表单 API 还是只使用普通的旧原生 PHP 和 jQuery?

编辑:看起来我什至不需要真正的 ajax 调用,因为我只需要更改 IMG 标签的 SRC。

这是我在原生 PHP 中所做的。我想实现这个低谷形式的api:

<script>
    function getstar() {            
        starpoints = jQuery('#starpoints').val();
        rand = Math.floor(Math.random() * 9999) + 1;
        src = "test.php?star=" + starpoints + '&rand=' + rand;            
        jQuery('#starimg').attr("src",src);            
        return false;
    }        
</script>
<form>
<input type="text" name="starpoints" id="starpoints" />
<input type="submit" onclick="return getstar();" />
</form>
<img src="/test.php?star=5" id="starimg" />

编辑:好的,我设法用 Drupal API 渲染了一个表单。现在唯一的事情是我想通过我的模块插入 IMG 的占位符,但我不知道该怎么做。表单渲染得很好,但我想在它之后添加一个 HTML 块。目前我是用javascript做的:

jQuery(document).ready(function() {
jQuery('<div><br /><img id="starimg" src="" /></div>').insertAfter('#drawstar-form');
});

我应该捕获什么钩子来在表单之后呈现这个 HTML 块?我试过 drupal_get_form 但它返回一个数组,我无法附加 HTML 块。

【问题讨论】:

  • 这可能在 Drupal SE 网站上效果更好,如果您同意,请告诉我,我会将其发送到那里。

标签: ajax forms drupal


【解决方案1】:

Form API 提供了执行此操作所需的一切,而无需编写任何 JavaScript 代码。请参阅http://drupal.org/node/752056http://api.drupal.org/api/examples/ajax_example!ajax_example.module/function/ajax_example_simplest/7 和。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多