在wordpress中提交Web表单

时间:2016-09-18 14:48:39

标签: php wordpress forms post

我是wordpress中的新手,我在处理简单的表单布局/提交方面遇到了一些困难。 我有一个页面(从wp-admin页面创建),其中包含以下代码:

<div class="container-fluid">
    <form class="form-horizontal" action="" method="POST" >
        <div class="row form-group">
            <div class="col-xs-12">
                <label for="name">Nome</label>
                <input type="text" class="form-control" id="name" name="name" />
            </div>
        </div>
        <div class="row form-group">
            <div class="col-xs-12">
                <label for="residence">Residência</label>
                <input type="text" name="residence" id="residence" />
            </div>
        </div>
        <div class="row form-group">
            <div class="col-sm-6">
                <input class="btn btn-default" type="submit" value="Registar">
            </div>
        </div>
    <form>
</div>

我的问题是,我不知道在action属性中放入什么以及之后如何处理表单。我试图在模板文件夹中创建一个php文件并将其放入操作中,但它根本不起作用。 我还看到了一些可以添加到functions.php的操作,但我不认为这是解决问题的最佳方法。我想要的只是提交表单,将其作为元数据存储在数据库中,并将用户重定向到主页面。

2 个答案:

答案 0 :(得分:1)

我的建议是使用action="#",在按提交时将用户重定向到当前页面。然后,您可以检查不显示表单的隐藏字段,而是检查数据并将其存储在数据库中,然后将用户重定向到主页面。

您可以将此文件放在Wordpress安装中的任何位置(只要您的用户可以访问它)。如果可移植性不是问题,请将其粘贴在根目录中,或者如果可移植性很重要,请查找making a page template file

另外,小心使用属性name="name",因为这会破坏你的Wordpress页面处理我似乎记得(Wordpress使用它来识别它所在的页面)。

以下是同一页面处理的示例:

<?php 
if (isset($_POST["formSubmitted"])) {
    $name = $_POST["formName"];
    $residence = $_POST["formResidence"];
    // do database work here with $name and $residence
    // then output javascript to redirect to main page
    echo '<script>window.location = "http://example.com";</script>';
} else {
    // we display the form
?>
<div class="container-fluid">
    <form class="form-horizontal" action="#" method="POST" >
        <div class="row form-group">
            <div class="col-xs-12">
                <label for="name">Nome</label>
                <input type="text" class="form-control" id="name" name="formName" />
            </div>
        </div>
        <div class="row form-group">
            <div class="col-xs-12">
                <label for="residence">Residência</label>
                <input type="text" name="formResidence" id="residence" />
            </div>
        </div>
        <div class="row form-group">
            <div class="col-sm-6">
                <input class="btn btn-default" type="submit" value="Registar">
            </div>
        </div>
    <input type="hidden" name="formSubmitted" value="1">
    </form>
</div>
<?php
}
?>

备用解决方案可以是get_stylesheet_directory_uri(),它返回主题样式表所在的目录。您可以像这样使用它:

<form action="<?php echo get_stylesheet_directory_uri()."/some_php_file.php"; ?>" method="POST">

然后将数据传递给该文件,您可以从中将数据添加到数据库中。

答案 1 :(得分:0)

如果您是初学者,为什么不使用联系表格7或重力表格?

联系表格7:http://contactform7.com/

重力形式:http://www.gravityforms.com/