2013-04-05 37 views
0

我對允許數據庫中的書籍條目進行數據編輯的表單進行了防錯處理。除了下拉框外,一切正在工作。下拉框自動填充數據庫表中特定字段中的每個唯一條目,並且該部分完美工作。但是,當用戶點擊編輯書籍時,所有字段都會填充該書籍信息,並且我希望下拉框默認爲該書籍的正確值。我的解決方案是檢查每個值,因爲它將下拉框填充到該字段的實際圖書值,如果它們匹配,則將其設置爲「選定」值。使用PHP進行選擇時的HTML默認選項不起作用

它不工作。該框仍然填充正常,但它不是默認的。這是下拉框的代碼。

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

我可以提供,如果需要的所有變量。我不明白我做錯了什麼,但也許有人會發現一個明顯的錯誤。

謝謝 啓

+2

只是好奇......你有這個'($ lPub == $ pubStr?'':'')'所以在任何情況下你什麼都不填?爲什麼你有這個呢? – PlantTheIdea 2013-04-05 21:26:02

+1

你看過頁面源代碼,看看'selected'屬性是否顯示出來嗎? – 2013-04-05 21:26:13

+1

也許你可以記錄'$ pubStr'和'$ bookArr ['publicationType']' – 2013-04-05 21:26:29

回答

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']用於什麼,也許你錯誤地將它留在那裏

+0

這實際上是我原來的,新的if語句是我偶然添加的冗餘。我試圖弄清楚爲什麼原稿現在不工作。 – foxandsticks 2013-04-05 21:36:24