PHP get dropdown value and text
您好我在上面的链接中关注此帖子,以从下拉列表中获取用户选择的选项,并根据选择的内容执行某些操作。我有一个输入框供用户输入消息和下拉列表中的颜色,如果用户点击某种颜色,它将获取用户消息并将其更改为该颜色,但似乎无法正常工作。
<select name="color" id="color">
<option value="red">Red</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
</select>
这是帖子
if($_POST['red'] = 'red' )
{
echo "<font color ='red'> Hi $name </font><br />";
} elseif ($_POST['submit'] = 'green')
{
echo "<font color ='green'> Hi $name </font><br />";
} elseif ($_POST['submit'] = 'blue')
{
echo "<font color ='blue'> Hi $name </font><br />";
}
无论选择哪种下拉选项,它都会使字体颜色变为红色。我尝试了各种不同的东西,但似乎无法解决这个问题。
答案 0 :(得分:2)
您需要在数组中使用正确的变量。
您还需要比较==
而不是分配=
if($_POST['color'] == 'red' ) {
echo "<font color ='red'> Hi $name </font><br />";
} elseif ($_POST['color'] == 'green') {
echo "<font color ='green'> Hi $name </font><br />";
} elseif ($_POST['color'] == 'blue') {
echo "<font color ='blue'> Hi $name </font><br />";
}
或者,正如我所做的那样:
根本没有if
,只是回应我们的颜色。
echo "<font color='".$_POST['color']."'> Hi ".$name." </font><br />";
您也可以将其作为switch
声明尝试:
switch($_POST['color']){
case "red":
echo "<font color='red'> Hi ".$name." </font><br />";
break;
case "blue":
echo "<font color='blue'> Hi ".$name." </font><br />";
break;
case "green":
echo "<font color='green'> Hi ".$name." </font><br />";
break;
default:
echo "Hi ".$name."<br />";
break;
}
你可能想先逃避字符串等。但这给了你一个想法。
答案 1 :(得分:2)
查看您POST
的字段:
<select name="color" id="color">
...
</select>
访问$_POST
数组时,您不是在寻找已发布的值,而是在查找字段,在本例中为color
,而不是{{1 }},red
或green
。
你有正确的想法,但你的blue
声明正在寻找错误的内容,并使用了错误的if
(应该=
进行比较):
==
修复这些错误,您的代码应该有效。另外,请考虑使用IDE,它会向您显示这些错误(尤其是if($_POST['color'] == 'red'){
echo "<span style='color:red;'>Hi ".$name."</span>";
} else if ($_POST['color'] == 'blue'){
echo "<span style='color:blue;'>Hi ".$name."</span>";
} else if ($_POST['color'] == 'green'){
echo "<span style='color:green;'>Hi ".$name."</span>";
}
vs =
错误。
答案 2 :(得分:0)
将第一行更改为:
if($_POST['color'] == 'red' )