0

PHPを使用してドロップダウンメニューを動的に作成しようとしています。アイデアは次のとおりです。要素は、呼び出しと配列を行うループから形成されます。配列要素がセッションで保持されているデータと一致する場合、「selected」属性がタグに追加されます。これは、ページに以前に選択されたオプションが表示されることを意味します。

セッションデータからの変数の定義からフォーム要素のHTMLのエコーまで、ここに1つの完全なコードセットを含めようとしました。

現在は機能していません。ドロップダウンメニューが表示されますが、空白であり、オプションはありません。ideoneでデバッグしましたが、正常に実行されているようで、どこが間違っているのかわかりませんが、これが私の最初のPHP関数です。だから私はどういうわけかそれを台無しにしたと確信しています:)

どんな助けでも大歓迎です。

    <?php
    session_start();
    //if the session data has been set, then the variable $sv_02 is defined 
    //as the data held in the session under that name, otherwise it is blank
    if (isset($_SESSION['sv_02'])) {$sv_02=$_SESSION['sv_02'];} else {$sv_02="";}

    //define the array
    $dm_sv_02 = array('-Year','-2012','-2011','-2010','-2009');

    //create the function 
    function dropdown($dropdownoptions, $session_data) 
    { 
    foreach($dropdownoptions as $dropdownoption){
           if($session_data == $dropdownoption){
            echo '<option value="' . $dropdownoption . '" selected>' . $dropdownoption . '</option>';
           } else {
            echo '<option value="' . $dropdownoption . '">' . $dropdownoption . '</option>';
           }
          }

    }
    //echo the HTML needed to create a drop down, and populate it with 
    //the function which should create the <option> elements
    echo '<select name="sv_02">';
    dropdown($dm_sv_02, $sv_02);
    echo '</select>';
    ?>
4

2 に答える 2

0

これを試して:

foreach ($dropdownoptions as $dropdownoption) {
  echo ($dropdownoption == $sv_02) ? "<option selected=\"selected\" value=\"$dropdownoption\">$dropdownoption</option>" : "<option value=\"$dropdownoption\">$dropdownoption</option>";}
于 2012-07-14T01:43:49.853 に答える
0

これは、PHPを構築するために{smarty}タグを使用していたという事実の結果であることが判明しました。コードは記述どおりでしたが、すべてが1つのsmartyタグに含まれている場合にのみ機能しました。場合によっては、すべてを1つのタグに含めることで修正されました。

于 2012-07-16T21:50:16.010 に答える