表单提交后$ _POST为空

时间:2013-02-27 10:22:16

标签: php twitter-bootstrap

我正在使用Twitter Bootstrap来构建Web应用程序。我有一个表格,用户应输入他的姓名和姓氏,然后点击提交。问题是,$_POST变回空洞。 我在Windows 8机器上使用WAMP。

<?php
if(isset($_POST["send"])) {
    print_r($_POST)
} else {
    ?>
    <form class="form-horizontal" action="" method="post">
        <div class="control-group"> <!-- Firstname -->
            <label class="control-label" for="inputEmail">First name</label>
            <div class="controls">
                <input type="text" id="inputName" placeholder="First name">
            </div>
        </div>
        <div class="control-group"> <!-- Lastname -->
            <label class="control-label" for="inputEmail">last name</label>
            <div class="controls">
                <input type="text" id="inputLastname" placeholder="Last name">
            </div>
        </div>
        <div class="form-actions">
            <button type="submit" name="send" class="btn btn-primary">Submit data</button>
            <a href="<?php $mywebpage->goback(); ?>" class="btn">Cancel</a>
        </div>
    </form>
    <?php
}
?>

提前致谢

6 个答案:

答案 0 :(得分:22)

Plz尝试将名称添加到输入类型,如

<input type="text" id="inputLastname" name="inputLastname" placeholder="Last name">

现在检查$ _POST变量。

答案 1 :(得分:7)

您的输入没有name属性。设置那些:

<input type="text" id="inputName" placeholder="First name" name="first_name" />
<input type="text" id="inputLastname" placeholder="Last name" name="last_name" >

另外,请查看检测表单提交的方式:

if(isset($_POST['send']))

您检查发布数据中是否存在提交按钮。这是个坏主意,因为在Internet Explorer的情况下,如果用户按下回车键以提交表单,则提交按钮将不会出现在帖子数据中。

更好的方法是:

if($_SERVER['REQUEST_METHOD'] == 'POST')

或者

if(isset($_POST['first_name'], $_POST['last_name']))

更多信息 - Why isset($_POST['submit']) is bad

答案 2 :(得分:1)

<?php
if(isset($_POST["send"])) {
  echo $_POST["inputName"];
    echo $_POST["inputLastname"];
} 
else {
    ?>
    <form class="form-horizontal" action="<? echo $_SERVER['PHP_SELF']; ?>" method="POST">
        <div class="control-group"> <!-- Firstname -->
            <label class="control-label" for="inputEmail">First name</label>
            <div class="controls">
                <input type="text" id="inputName" placeholder="First name" name="inputName"> 
            </div>
        </div>
        <div class="control-group"> <!-- Lastname -->
            <label class="control-label" for="inputEmail">last name</label>
            <div class="controls">
                <input type="text" id="inputLastname" name="inputLastname" placeholder="Last name">
            </div>
        </div>
        <div class="form-actions">
            <input type="submit" name="send" class="btn btn-primary">Submit data</button>
            <a href="#" class="btn">Cancel</a>
        </div>
    </form>
    <?php
}
?>

答案 3 :(得分:0)

问题是你正在检查是否设置了$_POST['send'],但它不会。表单中的“发送”字段是按钮,但该按钮没有值,因此它不会包含在$_POST中。

希望有所帮助。

答案 4 :(得分:0)

我注意到使用&#39; 名称&#39;属性不能与 Bootstrap Validator 一起使用(if(isset($ _ POST [&#34; send&#34;]))。所以如果你想添加验证的话你的表格,我建议你按照这种方式!

解决方案

<button type="submit" class="btn btn-primary">Submit data</button>

PHP

if($_SERVER['REQUEST_METHOD'] == 'POST')

答案 5 :(得分:-2)

添加文件的位置或使用:

<form class="form-horizontal" action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">