1

すべてのフィールドが正しく入力されておらず、フォームが送信されたときに、 select 要素を使用してユーザー入力を保持するために PHP で苦労しています。

<form action="" method="post">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
    <select name="cars">
      <option value="volvo">Volvo</option>
      <option value="saab">Saab</option>
      <option value="mercedes">Mercedes</option>
      <option value="audi">Audi</option>
    </select>
  <input type="submit" value="Submit">
</form>

入力要素を使用すると、次のような単純な関数を使用できます。

function input_value($x){
    if(isset($_POST[$x])) {
    echo $_POST[$x];
    }else{
    echo '';
    }
}

そしてそれを次のように呼び出します:

<input type="text" name="fname" value="<?php input_value('fname');?>">

値は保持されています。しかし、選択要素ではそうではありません。

そのため、可能であればカスタム関数を使用してユーザー入力を簡単に保存する方法についてのヘルプをいただければ幸いです。

4

5 に答える 5

1

選択ボックス内でこれを試してください

<option value="volvo" <?php echo (input_value('cars') == 'volvo') ? 'selected="selected"' : ''; ?> >Volvo</option>

編集:

input_value($x)関数を次のように変更します

function input_value($x){
    if (isset($_POST[$x])) {
        return $_POST[$x];
    } else {
        return '';
    }
}
于 2012-11-06T10:46:21.810 に答える
1

valueselect 要素には、デフォルトの選択済みオプションを設定するための属性がありません。代わりに、option 要素にはselected属性があります。オプション要素に含めると、「選択されました」と表示されます。;)

関数のechoステートメントを次のように置き換えることをお勧めします。input_value()return

function input_value($x){
    if (isset($_POST[$x])) {
        return $_POST[$x];
    }
    else {
        return '';
    }
}

これにより、次のようなことができます。

<select name="cars">
    <option value="volvo" <?php echo (input_value('cars') == 'volvo') ? 'selected="selected"' : ''; ?>>Volvo</option>
    <option value="saab" <?php echo (input_value('cars') == 'saab') ? 'selected="selected"' : ''; ?>>Saab</option>
    <option value="mercedes" <?php echo (input_value('cars') == 'mercedes') ? 'selected="selected"' : ''; ?>>Mercedes</option>
    <option value="audi" <?php echo (input_value('cars') == 'audi') ? 'selected="selected"' : ''; ?>>Audi</option>
</select>

echo「通常の」テキスト フィールドでの関数の結果を忘れないでください。

<input type="text" name="fname" value="<?php echo input_value('fname');?>">
于 2012-11-06T10:44:11.380 に答える
1

選択入力に値を設定することはできないため、これは機能しません。以前に選択"selected"した に属性を追加する必要があります。<option>

于 2012-11-06T10:41:45.953 に答える
0

これを試してください

function input_value($x){
        if(isset($_POST[$x])) {
        return $_POST[$x];
        }else{
        return null;
        }
    }

そして、あなたはこのように呼び出すことができます

<input type="text" name="fname" value="<?php echo input_value('fname');?>">

于 2012-11-06T10:41:28.043 に答える
0

jquery-cookieCookieの読み取り、書き込み、および削除にのみ使用できます。

次の方法で実行できます。

  1. セッション Cookie を作成します。

     $.cookie('userInput', 'selectValue');
    
  2. クッキーを読む:

     $.cookie('userInput'); // => "selectValue"
    
  3. selectedそれを使用して、 の属性を設定しますoption

または$_POST関数の場合:

この方法でコードを使用する必要があります。

<select name="cars">
  <option value="volvo"<?php echo (input_value('cars') == 'volvo') ? ' selected="selected"' : ""; ?>>Volvo</option>
  <option value="saab"<?php echo (input_value('cars') == 'saab') ? ' selected="selected"' : ""; ?>>Saab</option>
  <option value="mercedes"<?php echo (input_value('cars') == 'mercedes') ? ' selected="selected"' : ""; ?>>Mercedes</option>
  <option value="audi"<?php echo (input_value('cars') == 'audi') ? ' selected="selected"' : ""; ?>>Audi</option>
</select>
于 2012-11-06T10:38:42.573 に答える