2014-02-26 58 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

这是没有损坏。这是执行顺序的问题。 “内部”回声将首先被调用,因此首先被放入输出流。很高兴帮助你。 –