关闭

二进制记录商品状态,超详细代码

标签: 二进制商品开关method报错
193人阅读 评论(0) 收藏 举报

这是一个经典的小案例案列,通过该案列解决以下问题:

1.一个页面输入,输出数据

2.屏蔽掉各种因为未定义变量的错误

3.二进制的开关控制方式: 

默认为0,想打开就是 亦或(^)默认状态,想关就再 亦或(^)上次的状态.


附上代码

<?php
/**
 * Created by PhpStorm.
 * User: Alienware
 * Date: 2016/6/1
 * Time: 22:17
 */
header("Content-Type:text/html;charset=utf-8");
//预定义六个空变量,屏蔽form表单提交时,未定义变量的错误
$g1Status = '';
$g2Status = '';
$g3Status = '';
$g1 = '';
$g2 = '';
$g3 = '';
// 默认初始化状态为空
$status = 0;
// 判断提交方式为post,才进行脚本.屏蔽直接在浏览器输入网站进入的未定义变量错误
if ($_SERVER['REQUEST_METHOD']=='POST'){

// 判断有没有值传过来,传过来了再赋值,屏蔽不勾选时,没有值就报错的问题
    if(isset($_POST['g1']))
    $g1 = $_POST['g1'];
    if(isset($_POST['g2']))
    $g2 = $_POST['g2'];
    if(isset($_POST['g3']))
    $g3 = $_POST['g3'];
//    用传过来的值 亦或^ 状态,打勾了之后就能得到一个数字(4;2;1),没打勾就还是0
    $g1Status = $status ^ $g1;
    $g2Status = $status ^ $g2;
    $g3Status = $status ^ $g3;
//    当前的状态值$status就是把三个开关 或起来 (|)
//    $Status = $g1Status | $g2Status | $g3;
//    echo $Status;
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
    <h1>当前商品状态:
        <?php
//        用三元判断值,数字不是0就是真;0就是假
        echo $g1Status?'新品':'';
        echo $g2Status?'精品':'';
        echo $g3Status?'热销':'';
        ?></h1>
<!--    // 判断商品的状态是不是为关,如果是关,那么$g1Status就是0,反之不为零,然后输出checked来保存状态,用三元直接控制-->
    <input type="checkbox" value="4" name="g1" <?php echo $g1Status==0 ? '':'checked'; ?> >新品
    <input type="checkbox" value="2" name="g2" <?php echo $g2Status==0 ? '':'checked'; ?> >精品
    <input type="checkbox" value="1" name="g3" <?php echo $g3Status==0 ? '':'checked';?> >热销
    <input type="submit" value="修改">
    </form>


1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:259次
    • 积分:22
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档