Drupal-创建一个表格

问题描述

| 如何在drupal中创建一个包含大约5个文本字段的表单,允许用户输入数据,然后单击Submit按钮并将其保存以将所有数据保存到MysqL数据库表中?     

解决方法

好吧,正如您从对该问题的其他回答中所看到的,有很多不同的方法可以做到这一点。问题就变成了,一旦数据进入mysql,您要如何处理它。 1)如果您想以某种方式将数据存储在mysql中,并且该数据将由某人进行审核,但通常不需要向用户显示,那么webform可能是一种解决方法。它使您可以轻松地创建供人们输入数据的表格,然后特权用户可以在线或通过将响应下载到文件中来查看结果。 Webform特别适用于设置调查表和其他仅需要每个用户填写一次的表单。 2)如果您希望人们回答表单中的问题,然后将结果作为数据显示在您的网站上,特别是如果您希望在视图中显示结果,则使用cck创建节点类型,并允许人们创建节点及其答案。确保每个用户一次创建一个节点会有些棘手,但是一旦创建了一个节点,就可以使用现有工具以多种不同的方式显示它们。 3)如果您需要表单输出进入已创建或已提供给您的特定表中,那么最好扎根并学习Form API并自己构建代码。 Webform和CCK创建供自己使用的表,如果您使用的是现有系统,则该表不起作用。     ,我强烈邀请您阅读有关表单API的页面,这是Drupal管理表单的强大工具。     ,您可以使用Drupal Webform模块。 如果要创建自定义表单,可以创建自己的模块。 此链接将为您提供帮助。 http://drupallearn.blogspot.com/p/forms-in-drupal.html     ,您也可以尝试使用webform模块。它几乎可以满足您的需求     ,如果只需要几个字段,则可以使用cck模块并创建包含这些字段的内容,请为所有用户设置创建内容的权限。 使用views模块可以创建所有创建的列表。 ck 观看次数     ,尽管很多答案都建议使用webform模块,但是编写自己的表单并不难,并且可以节省安装不需要的mkodule的麻烦。 (减少代码并减少数据库中的表是一件好事。) 要在具有大约5个文本字段的drupal中创建一个表单,允许用户输入数据,然后单击Submit按钮并将其保存以将所有数据保存到mysql数据库表中: 假设
mymodule
是模块的名称...
// shows the form
mymodule_myform($form,&$form_state) {
    for ($i = 0; $i < 5; $i++) {
        $form[\"field_$i\"] = array(
            \'#type\' => \'textfield\',\'#title\' => t(\'textfield @i\',array(\'@i\' => $i))
        );
    }

    $form[\'submit\'] = array(\'#type\' => \'submit\',\'#value\' => t(\'Submit\'));
}

// validate input
mymodule_myform_validate($form,&$form_state) {
}

// save the input to the database
mymodule_myform_submit($form,&$form_state) {
    $values = array();
    for ($i = 0; $i < 5; $i++) {
        $values(\"field_$i_value\" = strip_tags($form_state[\'values\'][\'field_$i\']));
    }
    flat_val = implode(\',\',$values);
    $sql = \"INSERT INTO {table} (field_0_value,field_1_value,field_2_value,field_3_value,field_4_value) VALUES (%s)\"
    $res = db_query($sql,$flat_val);
    drupal_set_message(\"Thank you for your submission.\",\'status\');
}