2012-01-13 81 views
0

我有一个php代码下面,它是假设显示我的按钮,连续7个按钮。现在这些按钮显示在一个淡入淡出的区块中。但问题是,前7个按钮不显示在块中,而是独立显示,其他按钮显示在块中。为什么会出现这种情况:7个按钮不显示在块中,但其他按钮是

下面是PHP代码:

<table class="optionTypeTbl"> 
<tr> 

     <?php 
    $i = 1; 
    foreach($num as $key => $val){ 
     echo"<input type=\"button\" value=\"$val\" id=\"btn".$val."\" name=\"btn".$val."Name\" class=\"gridBtns gridBtnsOff\">";   
     if($i%7 == 0) echo"</td></tr><tr><td>"; 
     $i++; 
    } 
?> 

     </tr> 
     <tr> 
     <td> 
     <input class="gridBtns" name="btnTrueorFalseName" id="btnTrueorFalse" type="button" value="True or False" /> 
     <input class="gridBtns" name="btnYesorNoName" id="btnYesorNo" type="button" value="Yes or No" /> 
     </td> 
     </tr> 
     </table> 

的CSS:

.gridBtns{ 
    background-color: #ffffff; 
    border: #666666 1px solid; 
    color: black; 
    font-weight:bold; 
    } 

.optionTypeTbl{ 
    display:none; 
    background-color:white; 
    position:absolute; 
    border:1px solid black; 
} 
+0

什么是生成的标记? CTRL + U。 – paislee 2012-01-13 17:50:03

+0

今天我学到了一种新的键盘快捷键。 – 2012-01-13 17:56:58

+0

缩小问题范围。 PHP与HTML的图形表示或Javascript无关。完全摘下它。 – 2012-01-13 17:57:30

回答

1

这可能是与按钮之前缺少的开始<td>

如果你有7/14/21/etc,我也会重新编写循环以确保你没有空行。按钮:

<table class="optionTypeTbl"> 
    <?php 
    $i = 1; 
    foreach($num as $key => $val){ 
     if($i%7 == 1) echo"<tr><td>"; 
     echo"<input type=\"button\" value=\"$val\" id=\"btn".$val."\" name=\"btn".$val."Name\" class=\"gridBtns gridBtnsOff\">";   
     if($i%7 == 0) echo"</td></tr>"; 
     $i++; 
    } 
    ?> 

<tr> 
    <td> 
    <input class="gridBtns" name="btnTrueorFalseName" id="btnTrueorFalse" type="button" value="True or False" /> 
    <input class="gridBtns" name="btnYesorNoName" id="btnYesorNo" type="button" value="Yes or No" /> 
    </td> 
</tr> 
</table> 
1

您错过了开头和结尾<td>标签。

<table class="optionTypeTbl"> 
    <tr> 
    <td> <!-- This is missing --> 
    <?php 
     // ... 
    ?> 
    </td> <!-- This is missing --> 
    </tr> 
    <tr> 
    <!-- ... --> 

作为边注,表格是用于显示表格数据。特别是对于这种情况,您的所有按钮每行都包含在一个单元格中,您可以使用<div>来实现完全相同的效果,它会更加“正确”,并且标记会更加整齐。