【问题标题】:Custom form in WordPress and store values into custom databaseWordPress中的自定义表单并将值存储到自定义数据库中
【发布时间】: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 中,用于例子。

我如何实现这一目标?

【问题讨论】:

标签: mysql wordpress forms


【解决方案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;

【讨论】: