PHP从下拉列表中获取值

时间:2015-03-31 16:21:46

标签: php html

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 />";
}

无论选择哪种下拉选项,它都会使字体颜色变为红色。我尝试了各种不同的东西,但似乎无法解决这个问题。

3 个答案:

答案 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 }},redgreen

你有正确的想法,但你的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' )