2017-05-01 8 views
0

粘着ドロップダウンオプションボックスを作成しようとしています。しかし、私が送信ボタンをクリックするたびに、値は持ち越されません。それは変わる。PHPの粘着ドロップダウンボックスの問題

私は間違っていますか?

<select name=person > 
     <option value="NULL">Choose a person</option>'; 
    <?php $dbc = getDBC(); 
      $result = $dbc->query('SELECT * from person'); 
      while ($row = $result->fetch_assoc()) { 
      echo "<option value=\"$row[ID]\""; 
     if (isset($_POST['person']) && ($_POST['person'] == $row[ID])) { 
      echo 'selected="selected"'; 
     } 
    echo ">($row[ID]) &nbsp $row[FIRST_NAME] &nbsp $row[LAST_NAME]</option>\n"; 
     } 
     ?> 
</select> 
+0

は違いを作ることはできませんが、属性の値は引用符で囲む必要があります。 _name = person_は_name = 'person'_でなければなりません。それが正しい値であることを確認するために$ _POST ['person']をエコーし​​てみましたか? –

+0

問題はここにあると思います。 isset($ _ POST ['person'])&&($ _POST ['person'] == $ row [ID])。各変数はそれ自身で目的の出力を生成しますか? – Icewine

+1

また、変数には引用符を付ける必要があります。 $ row [ID]はLAST_NAME、FIRST_NAMEと同じ$ row ['ID']にする必要があります。 – Icewine

答えて

0

以下のコードを試してみてください。構文の変更を加えました。そしてまた、あなたが使用してそれを最適化することができますWHERE条件SELECT * from person where id = $_POST['person']

<select name=person > 
      <option value="NULL">Choose a person</option>'; 
      <?php 
       $dbc = getDBC(); 
       $result = $dbc->query('SELECT * from person'); 
       while ($row = $result->fetch_assoc()) { 
       echo "<option value=\"$row['ID']\""; 

       if (isset($_POST['person']) && $_POST['person'] == $row['ID']) { 

       echo 'selected="selected"'; 
       } 

       echo ">($row['ID']) &nbsp $row['FIRST_NAME'] &nbsp $row['LAST_NAME']</option>\n"; 

       } 

       ?> 
      </select> 
+0

上記のコードを試しましたが、エラーメッセージが表示されます。構文エラー、予期しない ''(T_ENCAPSED_AND_WHITESPACE)、識別子(T_STRING)または変数(T_VARIABLE)または数値(T_NUM_STRING)が必要です。 –

関連する問題