2011-01-04 1 views
0

selectタグとoptionタグを使用して、$ _POSTを使用して情報を渡します。selectとoptionの使用とPOST後のメモ

ただし、ページを再読み込みすると、選択が元の値にリセットされます。 私は何が通過したのかを覚えています。

<?php 
     foreach($data as $value => $title) 
     { 
      foreach($ag as $first) 
      { 
       foreach($af as $second) 
       { 
        echo"<option value='$value-$first-$second'>$title - $first - $second</option>"; 
       } 
      } 
     } 
     ?> 

ご覧のとおり、私は3つのforeachループを使用してwhatsを生成します。 選択内容を記憶させるにはどうすればよいですか?

読んでいただきありがとうございます。新しいページで選択したオプションの出力がどのように見える必要がある

+0

リフレッシュ時に再ロードされますか?どのように/どの変数が渡されていますか? (ポストは明白ですが、他の変数は何ですか?) – CarpeNoctumDC

答えて

2

あなたは以下の私の変化「your_select_field_name」の代わりにあなたのselectフィールドの名前を使用する必要があります:

<?php 
     foreach($data as $value => $title) 
     { 
      foreach($ag as $first) 
      { 
       foreach($af as $second) 
       { 
        echo "<option value='$value-$first-$second'"; 
        if($_POST['your_select_field_name'] == "$value-$first-$second") { 
         echo ' selected="selected"'; 
        } 

        echo ">$title - $first - $second</option>"; 
       } 
      } 
     } 
     ?> 
+0

構文エラーがありますどこかに? – sark9012

+0

固定されていて、声援が朗報です。 – sark9012

+0

@ルーク - あなたが正しいと言っています。見積もりを忘れました。今すぐ修正:) – Cfreak

1

<option value='foo' selected>...<option> 
+0

彼のコードでは、すべてのオプションが '選択'されるでしょう... – CarpeNoctumDC

+0

'selected =" selected "を選択してください。 – webbiedave

1

HTMLは、メモリがありません。 <select>フォーム要素でデフォルトで選択されている項目は、selected属性を持つ項目です(存在しない場合は最初の項目)。単純に適切なマークアップを生成するために、$ _POSTに含まれる情報を使用します。

<select name="foo"> 
    <option value="v1">Label 1</option> 
    <option value="v2">Label 2</option> 
    <option value="v2" selected="selected">Label 3</option> 
    <option value="v4">Label 4</option> 
</select> 
0

選択したタグを正しいオプションで設定する必要があります。このようなもの:

<?php 
    $postedValue = $_POST['select_name']; 
    foreach($data as $value => $title) 
    { 
     foreach($ag as $first) 
     { 
      foreach($af as $second) 
      { 
       $computedValue = $value . '-' . $first . '-'. $second; 
       if ($computedValue == $postedValue) { 
        $selected = "selected"; 
       } else { 
        $selected = '' 
       } 
       echo "<option value='$computedValue' $selected>$title - $first - $second</option>"; 
      } 
     } 
    } 
    ?> 

これはおそらく書き辛いかもしれませんが、これは一般的な考えです。

関連する問題