表单提交后$ _POST为空

pan*_*ngi 5 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
}
?>
Run Code Online (Sandbox Code Playgroud)

提前致谢

Sid*_*Sid 23

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

<input type="text" id="inputLastname" name="inputLastname" placeholder="Last name">
Run Code Online (Sandbox Code Playgroud)

现在检查$ _POST变量.


Ran*_*der 9

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

<input type="text" id="inputName" placeholder="First name" name="first_name" />
<input type="text" id="inputLastname" placeholder="Last name" name="last_name" >
Run Code Online (Sandbox Code Playgroud)

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

if(isset($_POST['send']))
Run Code Online (Sandbox Code Playgroud)

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

一个更好的方法是:

if($_SERVER['REQUEST_METHOD'] == 'POST')
Run Code Online (Sandbox Code Playgroud)

要么

if(isset($_POST['first_name'], $_POST['last_name']))
Run Code Online (Sandbox Code Playgroud)

更多信息 - Why isset($_POST['submit'])很糟糕.

  • 这是一种比接受的答案更好的解释.也是Politer. (2认同)