7

我正在使用 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
}
?>

提前致谢

4

6 回答 6

27

请尝试为输入类型添加名称,例如

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

现在检查 $_POST 变量。

于 2013-02-27T10:25:43.097 回答
9

您的输入没有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 的情况下,如果用户按 Enter 键提交表单,则提交按钮将不会出现在发布数据中。

更好的方法是:

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

或者

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

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

于 2013-02-27T10:26:03.263 回答
0

我注意到使用' name '属性不适用于(if(isset($_POST [“send”])))的Bootstrap Validator。因此,如果您想在表单上添加验证,那么我建议您遵循这条路!

解决方案

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

php

if($_SERVER['REQUEST_METHOD'] == 'POST')
于 2015-01-19T17:43:22.837 回答
0
<?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
}
?>
于 2013-02-27T10:34:03.050 回答
0

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

希望有帮助。

于 2013-02-27T10:28:37.740 回答
-2

添加文件的位置或使用:

<form class="form-horizontal" action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
于 2013-02-27T10:24:09.950 回答