2013-02-27 14 views
5

私はWebアプリケーションを構築するためにTwitter Bootstrapを使用しています。私は、ユーザーが自分の名前と姓を入力して提出するフォームを持っています。問題は、$_POSTが空に戻ってしまうことです。 Windows 8マシンでWAMPを使用しています。

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

アサイン名 – Sid

+0

ダーン、それはとても明らかだった、と私はそれを見ていません。どうもありがとうございました! – pangi

+0

これを回答として投稿しました。あなたが好きならそれを好きになるかもしれません:) – Sid

答えて

19

Plzを試してみて、今

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

のような入力タイプに名前を追加:事前

-2

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

おかげでアクションまたは使用中のファイルの場所を追加します。 $ _POST変数を確認してください。

+0

1.アクションはjavascriptで追加できます。 2。'$ _SERVER ['PHP_SELF']' – itachi

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の場合、ユーザがフォームを送信するためにEnterキーを押した場合、投稿データに投稿ボタンが表示されないため、これは悪い考えです。

より良い方法は次のとおりです。

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

それとも

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

詳細情報 - Why isset($_POST['submit']) is bad

+1

を使用するための助言をしないでください。これは受け入れられた答えよりも優れた説明です。ポリーターも。 – Corin

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') 
関連する問題