2013-02-27 34 views
5

Tôi đang sử dụng Twitter Bootstrap để xây dựng một ứng dụng web. Tôi có một hình thức mà người dùng nên nhập tên và họ của mình và nhấp vào gửi. Vấn đề là, $_POST trở lại trống. Tôi đang sử dụng WAMP trên máy tính Windows 8.

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

Cảm ơn trước

+2

tên assign với nhiều loại đầu vào – Sid

+0

Darn, nó rất rõ ràng, và tôi đã không nhìn thấy nó. Cảm ơn nhiều! – pangi

+0

Tôi đã đăng câu trả lời này làm câu trả lời. Bạn có thể thích nó nếu bạn muốn :) – Sid

Trả lời

19

Plz thử và thêm tên cho các loại đầu vào như

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

Bây giờ kiểm tra biến $ _POST.

-2

Thêm vị trí của tập tin trong hành động hay sử dụng:

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

1. Hành động có thể được thêm thông qua javascript. 2.Xin đừng khuyên sử dụng '$ _SERVER ['PHP_SELF']' – itachi

6

Đầu vào của bạn không có thuộc tính name. Đặt ra các:

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

Ngoài ra, hãy nhìn vào cách mà bạn phát hiện một trình dạng:

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

Bạn kiểm tra xem nút gửi là hiện diện trong bài dữ liệu. Đây là một ý tưởng tồi vì trong trường hợp của Internet Explorer, nút gửi sẽ không xuất hiện trong dữ liệu bài đăng nếu người dùng nhấn phím enter để gửi biểu mẫu.

Một phương pháp tốt hơn là:

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

Hoặc

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

Thông tin thêm - Why isset($_POST['submit']) is bad.

+1

Đây là cách giải thích tốt hơn câu trả lời được chấp nhận. Politer quá. – Corin

0

Vấn đề là bạn đang kiểm tra xem $_POST['send'] đã được đặt chưa, nhưng sẽ không. Trường "gửi" trong biểu mẫu của bạn là nút, nhưng nút không có giá trị, do đó, nó sẽ không được bao gồm trong $_POST.

Hy vọng điều đó sẽ hữu ích.

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

tôi đã nhận thấy rằng sử dụng 'tên' thuộc tính không hoạt động tốt với Bootstrap Validator for (if (isset ($ _ POST [ "gửi"]))). Vì vậy, trong trường hợp nếu bạn muốn thêm xác nhận vào biểu mẫu của bạn thì tôi khuyên bạn nên làm theo cách này!

Giải pháp

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

php

if($_SERVER['REQUEST_METHOD'] == 'POST') 
Các vấn đề liên quan