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 回答