我在wordpress页面中构建了一个表单,我希望它将输入的数据发送到我的wp数据库中的自定义构建表中。我能够在代码数据中指定插入,但我无法弄清楚如何让我的代码接收数据。我已经尝试将代码放在页面内部和外部的主WP文件夹中,但我仍然无法正常工作。
我的表格
<form method="post" action="setLiquor.php">
Add a New Liquor Type</br></br>
<p>Name: <input type="text" name="name"/></p>
<p>Description <input type="text" name="description"/></p>
----------------------------------------------</br>
<input type="submit" name="Submit">
</form>
setLiqour.php文件..当我将插入数据更改为文本并将其放入wp页面时,此代码有效,但我不知道如何获取html表单以将数据发送给它。< / p>
<?php
$lq_name = sanitize_text_field( $_POST['name']);
$description = $_POST['description'];
$table_name = $wpdb->prefix . "Liquor_Type";
$wpdb->insert( $table_name, array(
'lq_name' => $lq_name,
'description' => $description
) );
?>
答案 0 :(得分:2)
您可以将数据发布到同一页面,将setLiqour.php中的代码放在此页面模板文件的顶部。并将操作设置为the_premalink()
或仅设置空操作。
或者您可以创建感谢页面并将此代码放在感谢页面模板中并提交到此/感谢页面。
您还需要验证表单是否已提交,您可以通过包装代码来执行此操作:
if(isset($_POST['name'])) {
$lq_name = sanitize_text_field( $_POST['name']);
$description = $_POST['description'];
$table_name = $wpdb->prefix . "Liquor_Type";
$wpdb->insert( $table_name, array(
'lq_name' => $lq_name,
'description' => $description
) );
}
最好将$_POST['name']
更改为其他名称,例如$_POST['lq_name']
。