2014-02-26 64 views
0

我有相關的問題一個CSS,這看起來很容易,但我一直在抨擊我的頭靠在牆上的最後一個小時,因爲角落找尋我試圖不應用調整。下拉菜單不會堅持到表

一些奇怪的原因,選擇下拉菜單中不會粘到細胞,但放置在table.See上圖中下面

enter image description here

環路代碼來生成表被建立作爲隨後(我沒有打擾張貼不相關的PHP的原因,多數民衆贊成)

echo '<tr class="items">'; 
echo '<td id="cell11">'.$Date.'</td>'; 
echo '<td id="cell21">'.$link.'</td>'; 
echo '<td id="Fright1">'.MakeUserRoleDropdown($StatusId).'</td>'; 
echo '</tr>'; 

的CSS是非常基本的:

select    { width: 367px; font-family: Verdana; font-size: 12px; color: #666; background: white; border: 1px solid #CECECE; padding: 4px;} 
.dropdownrole  { width:150px;} 
#cell11    { padding-left: 10px; padding-right: 10px; width: 200px; text-align:left;} 
#cell21    { padding-left: 10px; padding-right: 10px; width: 200px; text-align:left;} 
#Fright1   { padding-left: 10px; padding-right: 10px; width: 200px; text-align:right;} 

table.items tr  { height: 32px; background:url(../images/tableRow.png); border-top: 1px solid #CCC; padding: 0; margin: 0;} 
.items    { width: 100%; border-collapse: collapse; color: ##797979; font-family: Verdana; font-size: 11px; } 
table    { border-spacing:2px;} 

dropdownrole是在這種情況下te類應用到下拉菜單。

正如你看到的,下拉不會應用到該行,只是在該表(甚至在代碼它甚至不是在細胞)上面放,我不能換我的頭以防萬一原因。我製作的細胞尺寸(高度和寬度)已經更大,但沒有運氣。

難道我在CSS中錯了嗎?

EDIT

每下拉功能的請求。

function MakeUserRoleDropdown($StatusId){ 
    echo "<select name='StatusId' class='dropdownrole'>";  
    $results = LoadRoles(); 
    while($row = mysql_fetch_array($results)){ 
     echo "<option value='".$row['SgroupId']."' "; 
       if($StatusId == $row['SgroupId']){ 
        echo "selected='selected'"; 
        }; 
     echo ">".$row['SgroupUser']."</option>"; 
     } 
    echo "</select>"; 
} 

這裏是HTML中的輸出。

Output in browser as HTML

+0

顯示MakeUserRoleDropdown的php函數或者至少是id =「Fright1」的單元格內的html代碼.... –

+0

'' - >這是代碼中的'd' '? – ojovirtual

+0

@ojovirtual這是我身邊的一個錯字(它在代碼中寫的權利)我在我的文章中糾正了它。 – Dorvalla

回答

3

我認爲問題是,你叫MakeUserRoleDropdown包含echos 您繼續使用這個字符串這個方法:echo '<td id="Fright1">'.MakeUserRoleDropdown($StatusId).'</td>';

改變你MakeUserRoleDropdown這樣:

function MakeUserRoleDropdown($StatusId){ 
    $str = ''; 
    $str .= "<select name='StatusId' class='dropdownrole'>";  
    $results = LoadRoles(); 
    while($row = mysql_fetch_array($results)){ 
     $str .= "<option value='".$row['SgroupId']."' "; 
       if($StatusId == $row['SgroupId']){ 
        $str .= "selected='selected'"; 
        }; 
     $str .= ">".$row['SgroupUser']."</option>"; 
     } 
    $str .="</select>"; 
    return $str; 
} 

你應該很好。

+0

的確,它確實修復了它。雙重回聲破壞了它......現在有意義......沒有想到這一點。謝謝 – Dorvalla

+2

當然你是正確的,會把選擇元素以外的td id =「fright1」,因爲附加的第一個回聲是在內部的makeuserRoleDropdown undefined –

+1

這是沒有損壞。這是執行順序的問題。 「內部」回聲將首先被調用,因此首先被放入輸出流。很高興幫助你。 –