WordPress中的自定义表单并将值存储到自定义数据库中

Posted

技术标签:

【中文标题】WordPress中的自定义表单并将值存储到自定义数据库中【英文标题】:Custom form in WordPress and store values into custom database 【发布时间】:2014-11-30 10:06:47 【问题描述】:

我的 WordPress 网站中有一个包含 2 个文本字段的简单表单。我创建了一个新的页面模板并添加了以下 html 代码:

这是 HTML:

<form action="<?php the_permalink(); ?>" id="customform" method="post">
Field 1: <input type="text" name="field1" id="field1">
Field 2: <input type="text" name="field2" id="field2">
<input type="submit" name="submit" id="submit">
</form>

现在我想要实现的是,无论用户输入什么,它都会将其存储到mysql与 WordPress 在同一个数据库中),在表test_form 中,用于例子。

我如何实现这一目标?

【问题讨论】:

能否提供 test_form 表格布局?这里有一个很好的例子w3schools.com/php/php_mysql_insert.asp test_form 的表格布局就是 Field1 (VARCHAR), Field2 (VARCHAR)。 【参考方案1】:

你可以通过下面的代码来实现:

<?php
    include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-config.php');

    $field1 = $_POST['field1'];
    $field2 = $_POST['field2'];
    global $wpdb;
    $wpdb->query(
        $wpdb->prepare("INSERT INTO wp_test_form ( field1, field2 ) 
            VALUES ( %d, %d)",$field1,$field2)
    );      
?>

注意:使用名为 wp_test_formtable 进行测试。您可以添加自己的表名。它是整数值。如果你想要 string 然后将 %d 更改为 %s

【讨论】:

您写了“如果您想要字符串,请将 %d 更改为 %s”。如果是日期格式会怎样? 另外,如果您提交表单时,它会在数据库中添加 2 个额外的空白行。我怎样才能解决这个问题?谢谢:)【参考方案2】:

试试这个,它会帮助你。

  $field1   =   $_POST['field1'];
  $field2    =   $_POST['field2'];
  $page_one_table = 'test_form';
  $page_one_inputs =  array(
  'field1' => $field1,
  'field2' => $field2
  );
//  Insert the data into a new row
  $insert_page_one  =   $wpdb->insert($page_one_table, $page_one_inputs);
  //    Grab the ID of the row we inserted for later use
$form_id = $wpdd->insert_id;

【讨论】:

以上是关于WordPress中的自定义表单并将值存储到自定义数据库中的主要内容,如果未能解决你的问题,请参考以下文章

需要将“活动”类添加到自定义 WordPress 导航菜单

隐藏或排除前端表单中的 ACF 字段并存储默认值

将 Wordpress 的登录/注册页面重定向到自定义登录/注册页面

根据 Wordpress 中的自定义字段值批量重写帖子 slug

如何将电子邮件移动到自定义帖子类型?

PHP Wordpress:从Wordpress数据库中的自定义表中检索值