我被要求创建一个包含表单的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
注意你的代码
- 使用数组或其他类似的数据类型
- 始终检查变量是否已设置
- 即使在echo中也不要将HTML与PHP混合即使您可以关闭?>php标记并编写html,但不推荐使用
-
您只能在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>");
?>