PHP从入门到能用(七)表单交互

关于如何用PHP作后端进行表单交互的程序设计,可做计算器,成绩统计,用户登录注册等功能

利用 GET 和 POST 方法处理表单数据

【7-1】利用 GET 方法处理表单数据

7-1a.php

<form action="7-1b.php" method="get" id="form1" name="form1">
姓名:<input type="text" name="xm"/><br>
密码:<input type="password" name="mm"/><br>
性别:<input type="radio" name="xb" value=""/><input type="radio" name="xb" value=""/><br>
专业:
<select name="zy">
    <option>软件技术</option>
    <option>计算机信息管理</option>
    <option>网络技术</option>
    <option>计算机应用</option>
</select><br>
<br>备注:<textarea name="bz"></textarea><br>
<input type="submit" name="Submit" value="提交"/>
</form>

7-1b.php

<?php
    $xm=$_GET['xm'];
    $mm=$_GET['mm'];
    $xb=$_GET['xb'];
    $zy=$_GET['zy'];
    $bz=$_GET['bz'];
    echo "姓名:$xm<br>";
    echo "密码:$mm<br>";
    echo "性别:$xb<br>";
    echo "专业:$zy<br>";
    echo "备注:$bz<br>";
?>

在这里插入图片描述

【7-2】利用 POST 方法处理表单数据

7-2a.php

<form action="7-2b.php" method="post" id="form1" name="form1">
姓名:<input type="text" name="xm"/><br>
密码:<input type="password" name="mm"/><br>
性别:<input type="radio" name="xb" value=""/><input type="radio" name="xb" value=""/><br>
专业:
<select name="zy">
    <option>软件技术</option>
    <option>计算机信息管理</option>
    <option>网络技术</option>
    <option>计算机应用</option>
</select><br>
备注:<textarea name="bz"></textarea><br>
<input type="submit" name="Submit" value="提交"/>
</form>

7-2b.php

<?php
    $xm=$_POST['xm'];
    $mm=$_POST['mm'];
    $xb=$_POST['xb'];
    $zy=$_POST['zy'];
    $bz=$_POST['bz'];
    echo "姓名:$xm<br>";
    echo "密码:$mm<br>";
    echo "性别:$xb<br>";
    echo "专业:$zy<br>";
    echo "备注:$bz<br>";
?>

在这里插入图片描述

利用表单进行复杂数据的处理

【7-3】利用 POST 提交表单数据的方法

7-3a.php

<form name="form1" action="7-3b.php" method="post">
    <select name="xq">
        <option>打篮球</option>
        <option>看书</option>
        <option>看电影</option>
        <option>上网</option>
    </select><br>
    <label>
        <input type="submit" name="Submit" value="提交"/>
    </label><br>
</form>

7-3b.php

<?php
    if(isset($_POST['xq']))
    {
        $xq=$_POST['xq'];
        switch($xq)
        {
            case "打篮球":
                echo "小王喜欢打篮球!";
            break;
            case "看书":
                echo "小王喜欢看书!";
            break;
            case "看电影":
                echo "小王喜欢看电影!";
            break;
            case "上网":
                echo "小王喜欢上网!";
            break;
        }
    }
?>

在这里插入图片描述

【7-4】制作简单计算器

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>简单计算器制作</title>
</head>
<body>
    <form action="" method="post">
        <input type="number" size="6" name="num1"/>
        <select name="caculate">
            <option>+</option><option>-</option>
            <option>*</option><option>/</option>
        </select>
        <input type="text" name="num2" size="6"/>
        <input type="submit" name="js" value="计算"/>
    </form>   


<?php
    function cac($a,$b,$cac)
    {
        if($cac=="+") return $a+$b;
            elseif($cac=="-") return $a-$b;
                elseif($cac=="*") return $a*$b;
                    elseif($cac=="/"){
                        if($b==0)echo "除数不能为0!";
                        else return $a/$b;
                    }

    };

    if(isset($_POST['js']))
    {
        $x=$_POST['num1'];
        $y=$_POST['num2'];
        $cacu=$_POST['caculate'];
        $result=cac($x,$y,$cacu);
        echo "<script>alert('{$x}{$cacu}{$y}=$result')</script>";
    }
?>
</body>
</html>

在这里插入图片描述

页面跳转

【7-5】页面跳转函数 header()

<form action="" method="post">
    姓名:<input type="text" name="xm"/>
    <input type="submit" name="tj" value="提交">
</form>

<?php
    if(isset($_POST['tj'])){
        if($_POST['xm']==null){
            echo "<script>alert('用户名不能为空');</script>";
        }else header("location:7-4.php");
    }
?>

如果表单输入不为空,就跳转到计算器的页面,如果为空,就弹出警告框
在这里插入图片描述

实战应用

【z7-1】编写一个静态表单页面和一个 PHP 动态网页

在静态网页中通过 get 方法提交数据,在动态网页中检索这些数据并显示出来,如果该同学的性别为男,则显示“您是一位男生!”,性别为女,则显示“您是一位女生!”。

z7-1a.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="./z7-1b.php" method="get">
        姓名:<input type="text" name="name" id="">
        <p><input type="radio" name="sex" value="male"><input type="radio" name="sex" value="female"></p>
        <p><input type="submit" value="提交">
        <input type="reset" value="全部重写"></p>
    </form>
</body>
</html>


z7-1b.php

<?php
if (sizeof($_GET) > 0) {
    $name = $_GET['name'];
    $sex = $_GET['sex'];
    echo "{$name}同学,欢迎你访问本页面!<br/>您是一位" . $sex = ($sex == 'male' ? '男' : '女') . "生!";
}

在这里插入图片描述

【z7-2】编写一个静态表单和一个 PHP 动态网页

通过 POST 方法提交到动态网页,在动态网页中检索这些数据并显示出来

z7-2a.php

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        h2 {
            color: red;
            text-align: center;
        }

        kok {
            margin-left: 100px;
        }

        input,
        select {
            margin-left: 10px;
        }
    </style>
</head>

<body>
    <h2>意见反馈</h2>
    <form action="./z7-2b.php" method="get">
    <p>
        <kok><span>您的姓名:</span><input type="text" name="user" id=""></kok>
        <kok><span>您的性别:</span><input type="radio" name="sex" id="" value="" checked><input type="radio" name="sex" id="" value=""></kok>
    </p>
    <p>
        <kok>您的职业:<select name="occupation">
                <option value="学生">学生</option>
                <option value="路人">路人</option>
            </select></kok>
        <kok></kok>
        <kok>您的最高学历:<select name="education">
                <option value="初中">初中</option>
                <option value="博士">博士</option>
            </select></kok>
    </p>
    <kok>您对本站的意见:</kok>
    <p>
        <kok><textarea name="feedback" id="" cols="120" rows="10"></textarea></kok>
    </p>
    <p>
        <kok><input type="reset" value="重写"><input type="submit" value="提交"></kok>
    </p>
    </form>
</body>

</html>


z7-2b.php

<?php
if (sizeof($_GET) > 0) {
echo "十分感谢用户&nbsp;&nbsp;&nbsp;{$_GET['user']}&nbsp;&nbsp;&nbsp;的意见<br/>请确认下列信息:<br/>您的性别:{$_GET['sex']}<br/>您的职业:{$_GET['occupation']}<br/>您的学历:{$_GET['education']}<br/>您的意见:{$_GET['feedback']}";
}
?>

在这里插入图片描述

【z7-3】利用第一题编写的静态表单来重新建立一个动态 PHP 网页

通过提交的数据来判断 性别,如果性别为“男”则显示“XX 先生,欢迎你访问本页面!”,性别为“女”则显示“XX 小姐,欢迎你访问本页面!”

z7-3a.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<form action="./z7-3b.php" method="get">
姓名:<input type="text" name="user" id="">
性别:<input type="radio" name="sex" value=""><input type="radio" name="sex" value=""><input type="submit" value="提交"><input type="reset" value="全部重置">
</form>
</body>
</html>

z7-3b.php

<?php
if (sizeof($_GET) > 0) {
$who=$_GET['sex']=='男'?'男士':'小姐';
echo "{$_GET['user']}{$who},欢迎访问本页面";
}

在这里插入图片描述

【z7-4】计算从 1 开始到用户指定的数的累加和,指定数字由用户自己输入

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="" method="get">
    1+2+...+<input type='number' name='num'><input type='submit' value='计算'/>
    </form>
</body>
</html>

<?php
if (isset($_GET['num'])) {
    $num = $_GET['num'];
    $res = 0;
    for ($i = 0; $i <= $num; $i++) {
        $res += $i;
    }
    echo "<script>alert('1+2+...+{$num}=${res}');</script>";
}

【z7-5】制作一用户注册页面

对用户输入的数据进行判断:如果用户名为空则弹出警告框“用户名不能为空!”,否则进行下一步的判断,如果两次输入的密码不一致则弹出警告框“两次密码必须一致!”

z7-5a.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        kok{
            display:inline-block;
            width:120px;
        }
    </style>
</head>
<body>
    <h2>用户注册</h2>
    <form action="./z7-5b.php" method="post">
   <p><kok>用户名: </kok><input type="text" name="user" id=""></p>
   <p><kok>密码: </kok><input type="password" name="passwd1" id=""></p>
   <p><kok>确认密码: </kok><input type="password" name="passwd2" id=""></p>
   <kok></kok><button type="submit" value="">提交</button> <button type="reset">重置</button>
    </form>
</body>
</html>

z7-5b.php

<?php
    if ($_POST['user'] == null) {
        echo "<script>alert('用户名不能为空');</script>";
    }
    if ($_POST['passwd1'] != $_POST['passwd2']) {
        echo "<script>alert('两次密码不一致');</script>";
    }

在这里插入图片描述

【z7-6】利用数组的知识计算多个学生的成绩

先建立一个静态页面,可以输入 5 个同学的成绩,然后再点击“计算”按钮之后,跳转到动态页面,在动态页面可以计算出 5 个学生的成绩总分

z7-6a.php

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        kok{
            display: inline-block;
            width: 160.8px;
        }

        ul li{
            display: inline-block;
            text-align: center;
        }

        input,button{
            cursor: pointer;
        }
    </style>
</head>

<body>
    <form action="./z7-6b.php" method="get">
    <!-- ul*6>li*4{<input type="number" value="msginfo[]">} -->
    <ul>
        <li>
            <kok></kok>
        </li>
        <li><kok>语文</kok></li>
        <li><kok>数学</kok></li>
        <li><kok>英语</kok></li>
    </ul>
    <ul>
        <li>
            <kok>学生1</kok>
        </li>
        <li><input type="number"name="msginfo[]"  ></li>
        <li><input type="number"name="msginfo[]"  ></li>
        <li><input type="number"name="msginfo[]"  ></li>
    </ul>
    <ul>
        <li>
            <kok>学生2</kok>
        </li>
        <li><input type="number"name="msginfo[]"  ></li>
        <li><input type="number"name="msginfo[]"  ></li>
        <li><input type="number"name="msginfo[]"  ></li>
    </ul>
    <ul>
        <li>
            <kok>学生3</kok>
        </li>
        <li><input type="number"name="msginfo[]"  ></li>
        <li><input type="number"name="msginfo[]"  ></li>
        <li><input type="number"name="msginfo[]"  ></li>
    </ul>
    <ul>
        <li>
            <kok>学生4</kok>
        </li>
        <li><input type="number"name="msginfo[]"  ></li>
        <li><input type="number"name="msginfo[]"  ></li>
        <li><input type="number"name="msginfo[]"  ></li>
    </ul>
    <ul>
        <li>
            <kok>学生5</kok>
        </li>
        <li><input type="number"name="msginfo[]"  ></li>
        <li><input type="number"name="msginfo[]"  ></li>
        <li><input type="number"name="msginfo[]"  ></li>
    </ul>
    <ul><li><input style="margin-left:282px" type="submit"name="计算"><button style="margin-left:10px" type="reset">重置</button></input></li></input></ul>
    </form>
</body>

</html>

z7-6b.php

<?php
if (sizeof($_GET) > 0) {
    $val = $_GET['msginfo'];

    for ($i = 3, $k = 1; $i <= sizeof($val); $i += 3, $k++) {
        $res = (int) $val[$i - 3] + (int) $val[$i - 2] + (int) $val[$i - 1];
        echo "学生 {$k} 的总成绩为:{$res}<br/>";
    }

}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41136216/article/details/106299871