PHP 下拉菜单单选
以下实例设置了下拉菜单三个选项,表单使用 GET 方式获取数据,action 属性值为空表示提交到当前脚本,我们可以通过 select 的 name 属性获取下拉菜单的值:(这里action为空值,表示到当前脚本)
<html>
<head>
<meta charset="utf-8">
<title>PHP 下拉菜单单选</title>
</head>
<body>
<?php
$q = isset($_GET['q'])? htmlspecialchars($_GET['q']): ''; //三元运算符?,isset()函数判断变量是否已设置或者为NULL
if($q) {
if($q =='RUNOOB') {
echo '菜鸟教程<br>http://www.runoob.com';
} else if($q =='GOOGLE') {
echo 'Google 搜索<br>http://www.google.com';
} else if($q =='TAOBAO') {
echo '淘宝<br>http://www.taobao.com';
}
}
else { //如果$q值不为上面三种情况就显示下拉菜单,这里中间嵌入html语句,需要先把上面的<?php先关闭
?>
<form action="" method="get">
<select name="q">
<option value="">选择一个站点:</option>
<option value="RUNOOB">Runoob</option>
<option value="GOOGLE">Google</option>
<option value="TAOBAO">Taobao</option>
</select>
<input type="submit" value="提交">
</form>
<?php //接上php脚本中else的闭括号
}
?>
</body>
</html>
对上面的进行修改一下,使用单选按钮:
<html>
<head>
<meta charset="utf-8">
<title>PHP 下拉菜单单选</title>
</head>
<body>
<?php
$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';
if($q) {
if($q =='RUNOOB') {
echo '菜鸟教程<br>http://www.runoob.com';
} else if($q =='GOOGLE') {
echo 'Google 搜索<br>http://www.google.com';
} else if($q =='TAOBAO') {
echo '淘宝<br>http://www.taobao.com';
}
} else {
?><form action="" method="get">
<input type="radio" name="q" value="RUNOOB" />Runoob
<input type="radio" name="q" value="GOOGLE" />Google
<input type="radio" name="q" value="TAOBAO" />Taobao
<input type="submit" value="提交">
</form>
<?php
}
?>
</body>
</html>
PHP 下拉菜单多选
如果下拉菜单是多选的( multiple="multiple"),我们可以通过将设置 select name="q[]" 以数组的方式获取,以下使用 POST 方式提交,代码如下所示:
<html>
<head>
<meta charset="utf-8">
<title>PHP 下拉菜单多选</title>
</head>
<body>
<?php
$q = isset($_POST['q'])? $_POST['q'] : '';
if(is_array($q)) {
$sites = array(
'RUNOOB' => '菜鸟教程: http://www.runoob.com',
'GOOGLE' => 'Google 搜索: http://www.google.com',
'TAOBAO' => '淘宝: http://www.taobao.com',
);//如果$q为一个数组,则执行该代码:定义一个关联数组$sites,并且遍历数组$q,以数组$q的值为键,输出$sites的值$sites[$val]
foreach($q as $val){
echo $sites[$val] . "<br/>";
}
}
else
{
?>
<form action="" method="post">
<select multiple="multiple" name="q[]">
<option value="">选择一个站点:</option>
<option value="RUNOOB">Runoob</option>
<option value="GOOGLE">Google</option>
<option value="TAOBAO">Taobao</option>
</select>
<input type="submit" value="提交">
</form>
<?php
}
?>
</body>
</html>
在这里用在不同操作系统和浏览器中,选择多个选项的差异:
对于 windows:按住 Ctrl 按钮来选择多个选项
对于 Mac:按住 command 按钮来选择多个选项
由于上述差异的存在,同时由于需要告知用户可以使用多项选择,对用户更友好的方式是使用复选框。
下面把代码修改一下,使用复选框:
<html>
<head>
<meta charset="utf-8">
<title>PHP 下拉菜单多选</title>
</head>
<body>
<?php
$q = isset($_POST['q'])? $_POST['q'] : '';
if(is_array($q)) {
$sites = array(
'RUNOOB' => '菜鸟教程: http://www.runoob.com',
'GOOGLE' => 'Google 搜索: http://www.google.com',
'TAOBAO' => '淘宝: http://www.taobao.com',
);//如果$q为一个数组,则执行该代码:定义一个关联数组$sites,并且遍历数组$q,以数组$q的值为键,输出$sites的值$sites[$val]
foreach($q as $val){
echo $sites[$val] . "<br/>";
}
}
else
{
?>
<form action="" method="post">
<input type="checkbox" name="q[]" value="RUNOOB">菜鸟教程<br/>
<input type="checkbox" name="q[]" value="GOOGLE">Google 搜索<br/>
<input type="checkbox" name="q[]" value="TAOBAO">淘宝
<input type="submit" value="提交">
</form>
<?php
}
?>
</body>
</html>
知识积累:
这里想讲一下name属性和value属性的作用:
name属性规定了标签的元素名称,name属性用于在JavaScript中引用元素,或在表单提交后引用表单数据,只有设置了name属性的表单元素才能在提交表单时传递它们的值,<value>属性规定在表单被提交时发送到服务器的内容,如果没有规定,则默认为标签中的值.
网友评论