在数据库中存储输入的自定义表单

时间:2012-12-25 作者:boje

我以前从未使用过WordPress,但有很多编程经验。我的问题是,如何在WordPress中创建海关表单?

我需要创建一个表单,用户在其中填写一些输入字段,提交时数据应存储在数据库中。我不需要任何保存通知。

我还需要查询数据并在HTML表中获得输出。

谢谢

7 个回复
最合适的回答,由SO网友:boje 整理而成

我打算使用这个解决方案,但它需要非常定制,这可能是主题和升级的问题吗?

SO网友:Aribam Karan

我自己找到了问题的解决方案。请参阅下面的代码,这将完成此操作。

将代码放入新创建的custom template.

<?php
    if (!empty($_POST)) {
        global $wpdb;
        $table = wp_achord;
        $data = array(
            \'name\' => $_POST[\'yourname\'],
            \'chord\'    => $_POST[\'chord\']
        );
        $format = array(
            \'%s\',
            \'%s\'
        );
        $success=$wpdb->insert( $table, $data, $format );
        if($success){
            echo \'data has been save\' ; 
        }
    } else {
        ?>
        <form method="post">
            <input type="text" name="yourname">
            <textarea name="chord"></textarea>
            <input type="submit">
        </form>
        <?php 
    }  
?>

SO网友:keatch

我的建议:

使用Contact Form 7Contact Form DB. 您可以在后端“设计”表单,并通过一个简单的快捷码将表单放在前端。

联系人表单DB扩展允许您将数据放入数据库中,并提供快捷码来显示数据(或者您可以直接从数据库中查询数据,如果您愿意的话)

SO网友:bueltge

它给出了不同的方法。对于存储数据,如选项是选项表,the options API, 以条目和数组作为存储元素的正确位置。但是,如果要将存储数据像post和表单中的每个请求一样使用,最好也像post一样保存。但这里也有不同的可能性。您可以保存不同的帖子类型。默认值为“post”,您也可以保存在自定义post类型中。使用该功能wp_insert_post() 从用户发送表单后,保存所有帖子类型。你可以在这里找到这个函数的很好的答案,这个主题也是在www中找到的this answer 73653, 在表单中插入附件。

SO网友:Aurovrata

您还可以使用优秀的联系人表单7插件以及Post My CF7 Form extension 插件,允许您将任何自定义表单保存到帖子中,包括作为特色附件的图像,以及选择/复选框/单选输入作为分类法。

Post My CF7表单插件具有丰富的功能,可用于进一步定制和调整表单的保存方式。有一个详细的documentation section

SO网友:Nimblechapps

您的解决方案很好,可能会非常有效。但是,它几乎没有限制。例如:

1) 如何搜索和排序通过表单发布的条目?2) 如何将填写到表单中的数据导出到Excel、CSV或PDF?3) 如果要打印插入的数据,该怎么办。

所有这些都可以通过Contact Form 7+Save Contact Form 7插件实现。

两者都是免费的广泛使用的插件:http://savecontactform7.com/http://contactform7.com/

SO网友:Pruthviraj Nayak
<?php
/**
Use these line of codes, its working more than 100%
 */
get_header();?> <?php
        if (!empty($_POST)) {
        global $wpdb;
            $table = wp_contact;
            $data = array(
                \'name\' => $_POST[\'aname\'],
                \'email\'    => $_POST[\'aemail\'],
                 \'subject\' => $_POST[\'asubject\'],
                \'msg\'    => $_POST[\'amsg\']
            );
            $format = array(
                \'%s\',
                \'%s\'
            );
            $success=$wpdb->insert( $table, $data, $format );
            if($success){
            echo \'data has been saved\' ; 
}
}
else   {
?>
        <form action="<?php echo get_option(\'siteurl\'); ?>/form/" method="post">
        <input type="text" name="aname">
         <input type="text" name="aemail">
          <input type="text" name="asubject">
        <textarea type="text" name="amsg"></textarea>

        <input type="submit">
        </form>

       <?php }  ?>
结束

相关推荐

Hide gravity forms

我在我的网站上设置了重力表单,我想根据用户是否已在表单/数据库中发布条目来隐藏/显示表单。如果他们做了一个条目,那么我想隐藏它并显示一些简单的文本。我知道重力形式允许你限制参赛人数,但这并不是我想要的。我猜我必须查询数据库,但我不确定最好的编写方法。我是否需要使用诸如get\\u posts之类的工具来检查作者是否有条目?这是最好的方式吗?