2013-02-27 44 views
5

我使用Twitter的引导来构建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 
} 
?> 

在此先感谢

+2

输入类型 – Sid 2013-02-27 10:23:47

+0

织补分配的名称,它是如此明显,我没看出来。非常感谢你! – pangi 2013-02-27 10:24:52

+0

我已经发布了这个答案。你可以喜欢它,如果你想:) – Sid 2013-02-27 10:26:22

回答

19

PLZ尝试和名称,如

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

现在添加到输入类型检查$ _POST变量。

-2

添加文件的位置在行动或使用:

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

1.该动作可以通过javascript添加。 2。请不要建议使用'$ _SERVER ['PHP_SELF']' – itachi 2013-02-27 10:36:19

6

您的输入没有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

+1

这是比接受的答案更好的解释。 Politer也是。 – Corin 2017-04-28 16:42:09

0

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

希望有所帮助。

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 
} 
?> 
0

我有通知说使用“”属性不能很好地与引导验证的工作(如果(isset($ _ POST [“发送”)))。所以,如果如果你喜欢在你的表单上添加验证,那么我建议你按照这种方式!

解决方案

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

PHP

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