根据颜色选择PHP为用户输入的文本着色


Colouring User Inputted Text depending on colour selection PHP

我被要求创建一个包含表单的PHP页面。这个表单应该允许用户输入单词并选择颜色。根据他们的选择,页面应该以他们选择的颜色回声出用户的单词。我开始尝试并实现它,但是遇到了一些问题。我的代码如下:

<?php
echo "
<html> 
<head> 
  <title>Colour Text</title> 
</head> 
<body> 
  <form name='colour_text' onsubmit='colour_text()' method='POST'>
    Word: <input type='text' name='word' /><br />
    Choose the colors: 
      <input type='radio' name='colour' value='bk' checked='checked' /> Black
      <input type='radio' name='colour' value='rd' /> Red
      <input type='radio' name='colour' value='be' /> Blue
      <input type='radio' name='colour' value='yw' /> Yellow
      <input type='submit' />
  </form>
</body>
</head>
</html>";
function colour_text($word, $colour)
{
$word = $_POST['word'];
$colour = $_POST['colour'];
    if ($colour == 'bk' ) 
    {
        echo '<div style='"color:black;'">$word</div>';
    }
    if ($colour == 'rd' ) 
    {
        echo '<div style='"color:red;'">$word</div>';
    }
    if ($colour == 'be' ) 
    {
        echo '<div style='"color:blue;'">$word</div>';
    }
    if ($colour == 'yw' ) 
    {
        echo '<div style='"color:yellow;'">$word</div>';
    }
}
?>

作为PHP的新手,我搜索并发现了一些类似的问题,但没有直接适用于此的问题。

你想要这样的东西,因为时间的原因不是很好的代码,但它可以成为你的示例的好教程,并将帮助你学习PHP

注意你的代码

  1. 使用数组或其他类似的数据类型
  2. 始终检查变量是否已设置
  3. 即使在echo中也不要将HTML与PHP混合即使您可以关闭?>php标记并编写html,但不推荐使用
  4. 您只能在DOM事件上附加JAVASCRIPT函数

    $colors = ['black', 'red', 'blue', 'yellow'];
    echo "
    <html> 
    <head> 
      <title>Colour Text</title> 
    </head> 
    <body> 
      <form name='colour_text' method='POST'>
        Word: <input type='text' name='word' /><br />
        Choose the colors: ";
    $checked = " checked='checked' ";
    foreach ($colors as $color) {
        echo "<input type='radio' name='colour' value='{$color}' {$checked}/> " . ucfirst($color) . " ";
        $checked = '';
    }
    echo "      <input type='submit' name='submitButton' />
      </form> ";
    if (isset($_POST['submitButton'])) {
        colour_text($_POST['word'], $_POST['colour']);
    }
    echo "
    </body>
    </head>
    </html>";
    function colour_text($word, $colour) {
        global $colors;
        $word = $_POST['word'];
        $colour = $_POST['colour'];
        if (!in_array($colour, $colors)) {
            $colour = 'black';
        }
        echo '<div style="color:' . $colour . ';">' . $word . '</div>';
    }
    

<?php
function colour_text() {
    // $_POST is global
    $word = $_POST['word'];
    switch ($_POST['colour']) {
        case 'bk': $colour = "black";
        case 'rd': $colour = "red";
        case 'be': $colour = "blue";
        case 'yw': $colour = "yellow";
        default: $colour = "black";
    }
    $result = "<div style='"color:".$colour."'">".$word."</div>";
}
IF (isset($_POST['submit'])) {
    $result = colour_text();
    }ELSE{ // form not submitted
    // form ......
    $result = "<form action='"".$_SERVER["PHP_SELF"]."'" name='"colour_text'" method='"POST'">
    Word: <input type='"text'" name='"word'" value='"'" /><br />
    Choose the colors: 
    <input type='"radio'" name='"colour'" value='"bk'" checked='"checked'" /> Black
    <input type='"radio'" name='"colour'" value='"rd'" /> Red
    <input type='"radio'" name='"colour'" value='"be'" /> Blue
    <input type='"radio'" name='"colour'" value='"yw'" /> Yellow
    <input type='"submit'" name='"submit'" value='"'" />
</form>";
    }
echo("<html> 
<head> 
    <title>Colour Text</title> 
</head> 
<body> 
".$result."
</body>
</head>
</html>");
?>