PHP:for

我目前正在学习一门开始的PHP编程课程,我需要一些帮助来完成我正在努力解决的一项任务。 该任务是创建一个用户可以输入正整数的表单。 然后,使用“for”循环显示由“hr”标签创建的水平线的数量[提示: <hr size=1 width=50% color='black'> ]。 最后,使用if语句来执行“模数”计算。 当“for”循环中的计数器为偶数时,将水平线的宽度设置为50%; 否则,将水平线的宽度设置为100%。

以下是我到目前为止所提供的代码:

<?php

if ($_POST) { // if the form is filled out
$integer = $_POST["pi"];

$i = $integer;

for ($i = 1; $i <= $integer; $i++) {
if ($i % 2) { // modulus operator
echo "<hr size=1 width=50% color='black'>";
} else {
echo "<hr size=1 width=100% color='red'>";
}

}
}
else { // otherwise display the form
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Enter a <i>Positive Integer</i>:
<input type="text" name="pi" size=5>
<input type="submit" value="Check"></form></p>
<?php
}
?>

我目前无法发布图片,但示例输出应该是50%的黑色水平线,然后是100%的红色水平线,直到达到输入的整数。 在每个小时之间似乎有一定的间距。


这一行:

$i = $integer;

... ...是多余的,只要你说for($i = ... ,$我会被覆盖。就你的情况而言,所以应该是这样。

其次,我认为你遇到的问题是你的线条不显示为黑色或红色。 原因是color是一种字体属性 ,你应该看看这篇文章,了解如何改变你的颜色:改变hr元素的颜色

我建议在你的PHP中使用class='black'class='red' ,并在CSS中设置类。


目前尚不清楚问题是什么。 如果问题在于你的HR元素之间有空格,那么删除默认边距将有所帮助(至少在Firefox中,我不确定是否所有浏览器在HR上都使用相同的渲染规则)。

<hr size="1" width=50% color='black' style="margin:0;" />
<hr size="1" width=100% color='red' style="margin:0;" />

问题在于,您将$ i分配给变量$ integer,因此它们是相同的值。

    <?php
if ($_POST)
{ // if the form is filled out
    $integer = $_POST["pi"];
    for ($i = 1; $i <= $integer; $i++)
    {
        if ($i % 2 ===0)
        { // modulus operator
            echo "<hr size=1 width=50% color='black'>";
        }
        else
        {
            echo "<hr size=1 width=100% color='red'>";
        }
    }
}
else
{ // otherwise display the form
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Enter a <i>Positive Integer</i>:
<input type="text" name="pi" size=5>
<input type="submit" value="Check"></form></p>
<?php
}
?>
链接地址: http://www.djcxy.com/p/15759.html

上一篇: PHP: for

下一篇: Only websafe colours for styling a <hr>?