7

TwitterBootstrapを使用してWebアプリケーションを構築しています。ユーザーが自分の名前と名前を入力して[送信]をクリックするフォームがあります。問題は、$_POSTカムが空に戻ることです。Windows8マシンで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

Plzは、次のような入力タイプに名前を追加しようとします

<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
<?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 に答える
0

' name '属性の使用は、 Bootstrap Validator for(if(isset($ _ POST ["send"])))ではうまく機能しないことに気付きました。フォームに検証を追加したい場合は、次のことをお勧めします。このように従うために!

解決

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

php

if($_SERVER['REQUEST_METHOD'] == 'POST')
于 2015-01-19T17:43:22.837 に答える
-2

動作中のファイルの場所を追加するか、以下を使用します。

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