0

データベース内の書籍エントリのデータ編集を可能にするフォームのバグを修正しています。ドロップダウンボックスを除いて、すべてが機能しています。ドロップダウン ボックスには、データベース テーブルの特定のフィールドにあるすべての一意のエントリが自動的に入力され、その部分は完全に機能します。ただし、クリックして書籍を編集すると、すべてのフィールドにその書籍の情報が入力されるため、ドロップダウン ボックスにその書籍の正しい値をデフォルトで設定したいと考えました。私の解決策は、ドロップダウンボックスにそのフィールドの実際の本の値を入力するときに各値をチェックし、それらが一致する場合はそれを「選択された」値にすることでした。

機能していません。ボックスはまだ正常に読み込まれていますが、デフォルトではありません。ドロップダウン ボックスのコードは次のとおりです。

<span style="margin-left:10px;">
 Publication Type: 
 <select name="publicationType" >
  <option value=""></option>
  <option value="">-------------------------</option>
  <?php 
   $lPub = '';
   if(array_key_exists('publicationType',$_REQUEST)) $lPub = $_REQUEST['publicationType'];
    $lPubArr = $datasetManager->getPublicationType();
    foreach($lPubArr as $pubStr){
    if($pubStr == $bookArr['publicationType']){
     echo '<option '.($lPub==$pubStr?'selected="selected"':'').'>'.$pubStr.'</option>'."\n";
    }
    else{
     echo '<option '.($lPub==$pubStr?'':'').'>'.$pubStr.'</option>'."\n";
    }
   } 
  ?>
 </select>
</span>

必要に応じて、すべての変数を提供できます。何が間違っているのかわかりませんが、誰かが明らかな間違いを見つけることができるかもしれません。

ありがとう、カイ

4

1 に答える 1

0

これが役立つかどうかはわかりませんが、これを試してください:

<?php 
   $lPub = '';
   if( array_key_exists('publicationType',$_REQUEST) )
        $lPub = $_REQUEST['publicationType'];
   $lPubArr = $datasetManager->getPublicationType();
   foreach($lPubArr as $pubStr){
     echo '<option '.($lPub==$pubStr?'selected="selected"':'').'>'.$pubStr.'</option>'."\n";
   }

この条件を削除しました:

f($pubStr == $bookArr['publicationType'])

の使用目的がわからないので$bookArr['publicationType']、間違ってそこに置いてしまったのかもしれません

于 2013-04-05T21:32:32.807 に答える