首页 » PHP笔记 » destoon添加打印标识功能和去除已打印功能

destoon添加打印标识功能和去除已打印功能

高蒙 2016/02/01 10:34 2.5k浏览 0评论 DestoonCMS


这里的打印功能是之前已经写好的,我这里修改destoon的打印功能,是在之前打印的基础之上继续添加打印过的数据,给予标识并且在打印的页面中添加去除已打印数据的功能。实现的思路,首先将已打印的数据写入到数据库中,在前台显示的地方重新重组数组。然后接着处理,去除已打印功能。这里打印的数据使用session保存的。所以,我们将session里面条件重新的组装一下,就可以了。

第一步:新建数据表destoon_print。

CREATE TABLE `destoon_print` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `printid` text COMMENT '打印的产品id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

这里的储存打印产品的id使用的是text字段,不是很完美。数据不大时候可以使用,考虑到大数据最好不要。

 

第二步:处理写入打印数据入库。

3.jpg

<script type="text/javascript">
 $(function(){
 $('.bb .operate').click(function(){
 $.ajax({
     cache: true,
     type: "POST",
     url:'/daili/print.php',
     data:{act:'printid'},
     async: false,
     dataType:'json',
     success: function(data) {
 if(data = 1){
     window.print();
 }else{
     alert('请重新打印本页内容');
 }
     }
 });
     });
 });
</script>
/* 用户打印产品的信息 20160129  begin ajax */
if($_POST['act'] == 'printid'){
 if(isset($_SESSION['printstr'])){
 // 查询是否用户名存在 打印过数据
 $sql = " select printid from destoon_print where username= '".$_username."' limit 0,1";
 $list_print = $db->get_one($sql);
 $str = $_SESSION['printstr'];
 if(!empty($list_print['printid'])){
 // 更新用户打印的数据 先判断是否已经打印过
 $print_str  = explode(',',$str);
 $print_list = explode(',',$list_print['printid']);
 $strs = "";

 // 判断传过来的产品id 是否已经存在
 foreach($print_str as $v){
 if(!in_array($v,$print_list)){
 $strs .= ",".$v."";
 }
 }
 $str = $str.$strs;
 $sqls = " update destoon_print set printid ='".$str."' where username = '".$_username."'";
 $status = $db->query($sqls);
 }else{
 $sqls = "insert into  destoon_print(username,printid) values('".$_username."','".$str."')";
 $status = $db->query($sqls);
 }
        if($status){
            echo json_encode(1);
        }else{
            echo json_encode(0);
        }
 }
 exit;
}
/* end */

 

第三步:处理显示已打印的数据。

1.jpg

// 重新的组装 判断此代理产品信息是否已经被打印过 begin 20160129

$sql = " select printid from destoon_print where username ='".$_username."'";
$printid = $db->get_one($sql);
$print_list = explode(',',$printid['printid']);
foreach($tags as $k=>$v){
if(in_array($v['itemid'],$print_list)){
    $tags[$k]['ifprint'] = 1;
}else{
    $tags[$k]['ifprint'] = 0;
}
}

第四步:去除已打印的数据。

2.jpg

/* 去除用户已打印产品的信息 20160129  begin */

if($_GET['act'] == 'printout'){
    if(isset($_SESSION['printstr'])){
        // 查询是否用户名存在 打印过数据
        $sql = " select printid from destoon_print where username= '".$_username."' limit 0,1";
        $list_print1  = $db->get_one($sql);
        $print_str1   = explode(',',$list_print1['printid']);        // 用户已打印的代理信息
        $print_list1  = explode(',',$_SESSION['printstr']);          // 当前未打印的代理信息
        foreach($print_list1 as $v){
            if(!in_array($v,$print_str1)){
                $str_list .= $v.",";
            }
        }
    }
    if(!empty($str_list))
        $printolist = substr($str_list,0,-1);
}
/* end */

 




相关文章

我有话说

站长昵称:(*)

输入内容:

选个头像:

评论列表

    ...

    高蒙

    男, PHP程序猿

    文章

    485

    标签

    42

    热度

    10w+

    南京, 江苏, 中国

    人生要是没有理想, 那跟咸鱼有什么分别。