美文网首页
php表单和用户输入(二)

php表单和用户输入(二)

作者: 烂笔头2020 | 来源:发表于2020-06-24 16:02 被阅读0次
    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>属性规定在表单被提交时发送到服务器的内容,如果没有规定,则默认为标签中的值.

    相关文章

      网友评论

          本文标题:php表单和用户输入(二)

          本文链接:https://www.haomeiwen.com/subject/cjbrfktx.html