0

私の登録フォームでは、ユーザーが [送信] をクリックしたときに検証メッセージを表示する必要がある場合、すべてのボックスからテキスト全体が消えます。つまり、最初からやり直す必要があります。

データを残すには、どの PHP コードを追加する必要がありますか?

        Username<span class="required">*</span> 
        <input name="user_name" type="text" id="user_name" minlength="5" >

        Full Name<span class="required">*</span> 
        <input name="full_name" type="text" id="full_name" size="30" 

       Nationality <span class="required">*</span>
        <select name="nationality"  id="select8">
            <option value="" selected></option>
            <option value="Afghanistan">Afghanistan</option>
            <option value="Albania">Albania</option>
        </select>

 <p align="center">
      <input name="doRegister" type="submit" id="doRegister" value="Register">
      </p>
  EDIT:   

私はこれを試しました:

        <?php
        $email_field = ($_POST['usr_email']);
        ?>
        Email<span class="required">*</span>
        <input type="text" id="usr_email3" name="usr_email" value="<?php echo   
        $email_field; ?>" />

しかし、それは usr_email が定義されていないと言っています

4

2 に答える 2

2

HTTP 仕様で説明されているように、HTTP はステートレスです。つまり、ユーザーが前のページからそのページにたどり着いたとしても、サーバーはこれを認識していません。各リクエストは完全に新しいため、以前の出力を送り返すことはできません。

$_POST からフォームに送信された値を読み取り、それを再送信する必要があります。例えば:

<?php
    //If the POST parameter has been send, set it to the $username variable. Otherwise make it empty.
    $username = array_key_exists('username', $_POST) ? $_POST['username'] : '';
?>

<form name='f1' method='POST'>

<!-- Show username as its value, thus preserving state. -->
Name: <input type='text' value='<?php echo $username ?>' name='username' />
<input type='submit' value='Go' />

</form>

入力 (通常はドロップダウン) の場合select、選択した属性を正しいオプションに設定する必要があります。そのような:

<?php
    $gender = array_key_exists('gender', $_POST) ? $_POST['gender'] : 'unknown'; //Default to unknown
?>

<form name='f1' method='POST'>

<select name='gender'>

    <!-- The $gender will be the value of each option. -->
    <option <? if($gender == 'unknown') { ?> selected <? } ?> value='unknown'>Unknown</option>
    <option <? if($gender == 'male') { ?> selected <? } ?> value='male'>Male</option>
    <option <? if($gender == 'female') { ?> selected <? } ?> value='female'>Female</option>

</select>


<input type='submit' value='Go' />

</form>

ただし、適切な本を購入するか、より多くのチュートリアルを読むことをお勧めします。開発者としてより快適になったら、ここにいる私たち全員がかつて行ったように、これらのソリューションを自分で探索して見つけることができます。

于 2012-04-27T08:13:53.667 に答える
0
<input name="user_name" type="text" id="user_name" minlength="5" value="<?php if(isset($_POST['user_name'])) { echo $_POST['user_name']; } ?>" >
于 2012-04-27T08:48:19.680 に答える