`
dcj3sjt126com
  • 浏览: 1871217 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP订单操作 serialize

    博客分类:
  • PHP
阅读更多

 

<input type="hidden" name="rqInfo" value='<?php echo serialize ($sessRequire);?>'>
**************
Action
//添加订单行信息
    function  addRequireLine ($mapping, $form, &$request, &$response){ 
        $arr_rq_info = $request->getParameter('rqInfo');//提交序列化订单信息来更新
        if(MAGIC_QUOTES_GPC){
            $require_info= stripslashes($arr_rq_info);
        }
    $require_info= unserialize ($arr_rq_info);
        if(!$require_info){
            $require_info =  array(
                'prj_id'      => null,
                'ref'          => null, 
                'create_time' => null,
                'building'      => null, //以上是存订单头信息
                'lineItems'   => array(),  //添加lineItems的index放订单行信息
            );
        }
        $option = $request->getParameter('option');
        $aryRq = $form->aryRequireJob;//订单头信息
        $aryRqLines = $form->aryRequireLines;////订单行信息
        $rqInfo = $this->delegate->addRequireJobLine($aryRq, $option, $aryRqLines, $require_info);
        $form->setSessRequire($rqInfo); //将更新后订单信息传到页面
        $this->init ($mapping, $form, &$request, &$response);

        $request->setAttribute('ACTION_FORM',$form);
        return $mapping->findForwardConfig('success');        
    }
//编辑订单行信息
    function  editRequireLine ($mapping, $form, &$request, &$response){
        $arr_rq_info = $request->getParameter('rqInfo');
        $require_info = unserialize($arr_rq_info);

        $lineNo = $request->getParameter('num');
        $option = $request->getParameter('option');
        $aryRq = $form->aryRequireJob;
        $aryRqLines = $form->aryRequireLines;
        if($require_info){
            $rqInfo = $this->delegate->editRequireJobLine($lineNo, $option, $aryRq, $aryRqLines, $require_info);
        }
        $form->setSessRequire($rqInfo);
        $this->init ($mapping, $form, &$request, &$response);
        
        $request->setAttribute('ACTION_FORM',$form);
        return $mapping->findForwardConfig('success');
    }
******manager********
    function addArrayRequireLine($aryRequire, $option, $aryRequireLines, $rqInfo){
            $rqInfo['prj_id']     = $aryRequire['prj_id'];
            $rqInfo['ref']         = $aryRequire['ref'];
            $rqInfo['create_time'] = $aryRequire['create_time'];
            $rqInfo['building']     = $aryRequire['building'];
            array_push($rqInfo['lineItems'],array(
                    'stock_code'    => $aryRequireLines['stock_code'],
                    'stock_name'    => $aryRequireLines['stock_name'],
                    'stock_detail'  => $aryRequireLines['stock_detail'],
                    'supplier_name' => $aryRequireLines['supplier_name'],
                    'building'        => $aryRequireLines['building'],
                    'delivery_to'    => $aryRequireLines['delivery_to'],
                    'qty'            => $aryRequireLines['qty'],
                    'remark'        => $aryRequireLines['remark']
                )
            );
            return $rqInfo;
    }
 
    function editArrayRequireLine($lineNo, $option, $aryRequire, $aryRequireLines, $rqInfo){
             $rqInfo['prj_id']         = $aryRequire['prj_id'];
             $rqInfo['ref']             = $aryRequire['ref'];
             $rqInfo['create_time']  = $aryRequire['create_time'];
             $rqInfo['building']     = $aryRequire['building'];
             $rqInfo['lineItems'][$lineNo]['stock_code']   = $aryRequireLines['stock_code'];
             $rqInfo['lineItems'][$lineNo]['stock_name']   = $aryRequireLines['stock_name'];
             $rqInfo['lineItems'][$lineNo]['stock_detail'] = $aryRequireLines['stock_detail'];
             $rqInfo['lineItems'][$lineNo]['supplier_name']= $aryRequireLines['supplier_name'];
             $rqInfo['lineItems'][$lineNo]['building']       = $aryRequireLines['building'];
             $rqInfo['lineItems'][$lineNo]['delivery_to']  = $aryRequireLines['delivery_to'];
             $rqInfo['lineItems'][$lineNo]['qty']           = $aryRequireLines['qty'];
             $rqInfo['lineItems'][$lineNo]['remark']       = $aryRequireLines['remark'];
            return $rqInfo;
    }   
 
    function deleteArrayRequireLine($lineNo, $rqInfo){
            unset($rqInfo['lineItems'][$lineNo]);
            return $rqInfo;
    }

    function replace_require_index($LineNo, $LineNoAfter, $rqInfo){
            $rqInfo['lineItems'][$LineNo]= $rqInfo['lineItems'][$LineNoAfter];
            deleteArrayRequireLine($LineNoAfter,  $rqInfo){
            return $rqInfo;
    }
*******delegate*****
    function addRequireJobLine($aryRequire, $option, $aryRequireLines, $rqInfo){
        return $this->data_manager->addArrayRequireLine($aryRequire, $option, $aryRequireLines, $rqInfo);
    }
 
    function editRequireJobLine($lineNo, $option, $aryRequire, $aryRequireLines, $rqInfo){
        return $this->data_manager->editArrayRequireLine($lineNo, $option, $aryRequire, $aryRequireLines, $rqInfo);
    }
//删除订单行后,重组数组key(数组key对应的是订单行号信息,所以要重组)
    function deleteOutRqJobLine($lineNo, $lineCounter, $rqInfo){
        if(($lineNo+1)==$lineCounter){
            $rqInfo = $this->data_manager->deleteOutRequireLine($lineNo, $rqInfo);
        }
        if(($lineNo+1)<$lineCounter){
            $rqInfo = $this->data_manager->deleteOutRequireLine($lineNo, $rqInfo);
            for($i=($lineNo+1);$i<$lineCounter;$i++){
                $rqInfo = $this->data_manager->replace_outrq_index(($i-1), $i, $rqInfo);
            }            
        }
         return $rqInfo;
    }

 

方法二:将订单行的操作与不做交互,用js去更新页面值。点击保存订单存数据库,才做交互,方法二较一要好http://hudeyong926.iteye.com/admin/blogs/608030

分享到:
评论

相关推荐

    matlab开发-serialize

    在MATLAB中,`serialize`函数是一个非常实用的工具,用于将MATLAB的数据对象编码为字符串或二进制格式,以便存储、传输或序列化。这个功能在开发过程中非常重要,尤其是在需要保存工作进度、跨程序传递数据或者进行...

    Serialize-javascript.zip

    Serialize-javascript 能够序列化 JavaScript 库成含有正则表达式和功能的 JSON 包。示例:var serialize = require('serialize-javascript'); serialize({  str : 'string',  num : 0,  obj : {foo: ...

    golang实现php里的serialize()和unserialize()序列和反序列方法详解

    PHP语言中的serialize()和unserialize()函数就是进行PHP对象和字符串之间转换的工具,而在Go语言中实现PHP的这些功能需要借助第三方库来完成。 为了在Go语言中实现类似PHP的序列化和反序列化功能,可以使用***/...

    ajax-axios-url-form-serialize 插件

    这个插件使得在发送POST、PUT等请求时,能够轻松地处理表单数据,而无需手动进行繁琐的序列化操作。 **一、Axios简介** Axios是一个基于Promise的HTTP库,可用于浏览器和node.js中。它具有以下特点: 1. 支持浏览器...

    详解php中serialize()和unserialize()函数

    在PHP编程语言中,`serialize()` 和 `unserialize()` 是两个非常重要的内置函数,它们用于在内存中的PHP值与字符串之间进行转换。这对于数据持久化、传输或者在不同上下文中保持变量状态非常有用。 `serialize()` ...

    PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析

    综上所述,了解PHP中的serialize和JSON序列化与反序列化的操作区别,可以帮助开发者更加高效地处理数据持久化和数据交换的需求。在不同的应用场合选择合适的方法,不仅可以提高代码的可维护性,还可以提升系统的安全...

    对话框序列号例程serialize

    "serialize"一词在编程中通常指的是序列化操作,这里可能是特指C++中的`serialize`函数或方法,它负责将对话框中的控件和数据转换为可存储的格式。在C++中,实现序列化通常涉及到自定义的序列化和反序列化函数,这些...

    前端项目-jquery-serialize-object.zip

    在前端开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。本项目"前端项目-jquery-serialize-object"关注的是使用jQuery来序列化表单字段,将它们转换为...

    Jquery serialize() 中文乱码及解决方法

    在服务器端,应用服务器会对数据进行 URLdecode 操作,处理结果就是 [%E4,%B8,%AD],然后将其返回给 getParameter 方法。 在服务器端,我们可以使用 java.net.URLDecoder.decode 方法来将数据还原成原始的中文数据...

    TIA博途-序列化指令Serialize的具体使用方法示例.docx

    序列化指令`Serialize`的基本操作如下: 1. **数据转换**:首先,你需要定义一个或多个自定义数据类型(UDT或STRUCT),这些数据类型包含各种变量,如BOOL、BYTE、INT等。然后,你可以创建这些数据类型的实例,并...

    浅谈php serialize()与unserialize()的用法

    在PHP中,`serialize()` 和 `unserialize()` 是两个非常重要的内置函数,它们主要用于数据的序列化和反序列化。序列化是将复杂的数据结构(如对象、数组)转换为字符串的过程,便于存储或传输。而反序列化则是将这个...

    php序列化函数serialize() 和 unserialize() 与原生函数对比

    在PHP中,序列化是将变量转换为可存储或传输的字符串的过程,而反序列化则是将该字符串...而如果数据主要在PHP环境中操作,且需要保留对象状态或使用特殊数据类型,那么 `serialize()` 和 `unserialize()` 更为适用。

    form-serialize-and-calculate.html

    form-serialize-and-calculate.html

    cpp-swooleserialize是目前php7中最快的序列化函数

    在PHP开发中,序列化和反序列化是常见的数据处理操作,它们允许我们将变量的状态转换为字符串以便存储或传输,然后在需要时恢复为原始结构。`swoole_serialize`是一个专门为PHP7设计的高性能序列化库,尤其在C/C++...

    PHP的serialize序列化数据以及JSON格式化数据分析

    在PHP中,经常使用的序列化方式包括了PHP原生的serialize以及更为通用的JSON格式化。以下是根据给定文件信息,对PHP的serialize序列化和JSON格式化数据分析的知识点进行详细说明。 首先,PHP的serialize函数的作用...

    浅谈php函数serialize()与unserialize()的使用方法

    这种机制对于需要临时保存变量状态,然后重新加载它们的场景非常有用,例如,在会话管理或者数据持久化操作中。 序列化的数据通常包含了变量类型和结构信息,因此它能恢复成与原始变量结构相同的数组或对象。在CMS...

Global site tag (gtag.js) - Google Analytics