使用PHP ...循环生成代码(文本框的输入表单)?

时间:2015-10-14 17:55:25

标签: php forms loops input while-loop

所以我学习PHP并且只是在一些文本输入框中添加日期选择功能class =' tcal'。现在所有输入框都是相同的,但只有一些输入框具有tcal功能,但它们都需要它。

我知道我可以在每个领域手动输入它,但本着学习的精神,我想知道是否有办法添加class =' tcal'可能使用while循环的所有输入表单?

这是一个例子,第一组输入形式有tcal,第二组没有。无论如何,我可以使用PHP来实现这个目标吗?

<td><input class='tcal' type="text" name="txtG1D1" value=""></td>
    <td><input type="text" name="txtG1P1" value="P-"></td>
    <td><input size="100" type="text" name="txtG1RD1" value=""></td>
    <td>$<input type="text" name="txtG1RT1" value="00.0"></td>
</tr>
<tr>
    <td><input class='tcal' type="text" name="txtG1D2" value=""></td>
    <td><input type="text" name="txtG1P2" value=""></td>
    <td><input size="100" type="text" name="txtG1RD2" value=""></td>
    <td>$<input type="text" name="txtG1RT2" value="00.0"></td>
</tr>
<tr>
    <td><input class='tcal' type="text" name="txtG1D3" value=""></td>
    <td><input type="text" name="txtG1P3" value=""></td>
    <td><input size="100" type="text" name="txtG1RD3" value=""></td>
    <td>$<input type="text" name="txtG1RT3" value="00.0"></td>
</tr>
<tr>
    <td><input class='tcal' type="text" name="txtG1D4" value=""></td>
    <td><input type="text" name="txtG1P4" value=""></td>
    <td><input size="100" type="text" name="txtG1RD4" value=""></td>
    <td>$<input type="text" name="txtG1RT4" value="00.0"></td>
</tr>
<tr>
    <td><input class='tcal' type="text" name="txtG1D5" value=""></td>
    <td><input type="text" name="txtG1P5" value=""></td>
    <td><input size="100" type="text" name="txtG1RD5" value=""></td>
    <td>$<input type="text" name="txtG1RT5" value="00.0"></td>
</tr>
<tr>
    <td><input class='tcal' type="text" name="txtG1D6" value=""></td>
    <td><input type="text" name="txtG1P6" value=""></td>
    <td><input size="100" type="text" name="txtG1RD6" value=""></td>
    <td>$<input type="text" name="txtG1RT6" value="00.0"></td>
</tr>
<tr>
    <td colspan="4">Group #2 <input type="text" name="txtGroup2" size="80" value=""></td>
</tr>
<tr>
    <td><input type="text" name="txtG2D1" value=""></td>
    <td><input type="text" name="txtG2P1" value=""></td>
    <td><input size="100" type="text" name="txtG2RD1" value=""></td>
    <td>$<input type="text" name="txtG2RT1" value=""></td>
</tr>
<tr>
    <td><input type="text" name="txtG2D2" value=""></td>
    <td><input type="text" name="txtG2P2" value=""></td>
    <td><input size="100" type="text" name="txtG2RD2" value=""></td>
    <td>$<input type="text" name="txtG2RT2" value=""></td>
</tr>
<tr>
    <td><input type="text" name="txtG2D3" value=""></td>
    <td><input type="text" name="txtG2P3" value=""></td>
    <td><input size="100" type="text" name="txtG2RD3" value=""></td>
    <td>$<input type="text" name="txtG2RT3" value=""></td>
</tr>
<tr>
    <td><input type="text" name="txtG2D4" value=""></td>
    <td><input type="text" name="txtG2P4" value=""></td>
    <td><input size="100" type="text" name="txtG2RD4" value=""></td>
    <td>$<input type="text" name="txtG2RT4" value=""></td>
</tr>
<tr>
    <td><input type="text" name="txtG2D5" value=""></td>
    <td><input type="text" name="txtG2P5" value=""></td>
    <td><input size="100" type="text" name="txtG2RD5" value=""></td>
    <td>$<input type="text" name="txtG2RT5" value=""></td>
</tr>
<tr>
    <td><input type="text" name="txtG2D6" value=""></td>
    <td><input type="text" name="txtG2P6" value=""></td>
    <td><input size="100" type="text" name="txtG2RD6" value=""></td>
    <td>$<input type="text" name="txtG2RT6" value=""></td>
</tr>

1 个答案:

答案 0 :(得分:1)

如果你真的想用PHP做,你可以这样做:

<?php
    $groups = 2; //number of groups
    $rows = 4; //number of rows per group
    $tcalS = Array( 0 ); //groups that should be marked tcal, 0 is group 1

?>
    <table>

<?php
        for( $g = 0; $g < $groups; ++$g )
        {
?>
            <tr>
                <td colspan="4">Group #<?php echo $g; ?><input type="text" name="txtGroup<?php echo $g; ?>" size="80" value=""></td>
            </tr>
<?php
            for( $r=0; $r < $rows; ++$r )
            {
                addRow( $r, $g, in_array( $g, $tcalS ) );
            }
        }
?>

    </table>
<?php


    function addRow( $rowNum, $groupNum, $bIsTcal )
    {
        $nameD = 'txtG'.$groupNum.'D'.$rowNum;
        $nameRD = 'txtG'.$groupNum.'RD'.$rowNum;
        $nameRT = 'txtG'.$groupNum.'RT'.$rowNum;
        $nameP = 'txtG'.$groupNum.'P'.$rowNum;
?>
        <tr>
            <td><input <?php echo $bIsTcal ? 'class="tcal"' : ''; ?> type="text" name="<?php echo $nameD; ?>" value=""></td>
            <td><input type="text" name="<?php echo $nameP; ?>" value="P-"></td>
            <td><input size="100" type="text" name="" value="<?php echo $nameRD; ?>"></td>
            <td>$<input type="text" name="<?php echo $nameRT; ?>" value="00.0"></td>
        </tr>
<?php
    }

?>

但肯定有其他/更好的方法。