<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-javascript 能够序列化 JavaScript 库成含有正则表达式和功能的 JSON 包。示例:var serialize = require('serialize-javascript'); serialize({ str : 'string', num : 0, obj : {foo: ...
PHP语言中的serialize()和unserialize()函数就是进行PHP对象和字符串之间转换的工具,而在Go语言中实现PHP的这些功能需要借助第三方库来完成。 为了在Go语言中实现类似PHP的序列化和反序列化功能,可以使用***/...
这个插件使得在发送POST、PUT等请求时,能够轻松地处理表单数据,而无需手动进行繁琐的序列化操作。 **一、Axios简介** Axios是一个基于Promise的HTTP库,可用于浏览器和node.js中。它具有以下特点: 1. 支持浏览器...
在PHP编程语言中,`serialize()` 和 `unserialize()` 是两个非常重要的内置函数,它们用于在内存中的PHP值与字符串之间进行转换。这对于数据持久化、传输或者在不同上下文中保持变量状态非常有用。 `serialize()` ...
综上所述,了解PHP中的serialize和JSON序列化与反序列化的操作区别,可以帮助开发者更加高效地处理数据持久化和数据交换的需求。在不同的应用场合选择合适的方法,不仅可以提高代码的可维护性,还可以提升系统的安全...
"serialize"一词在编程中通常指的是序列化操作,这里可能是特指C++中的`serialize`函数或方法,它负责将对话框中的控件和数据转换为可存储的格式。在C++中,实现序列化通常涉及到自定义的序列化和反序列化函数,这些...
在前端开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。本项目"前端项目-jquery-serialize-object"关注的是使用jQuery来序列化表单字段,将它们转换为...
在服务器端,应用服务器会对数据进行 URLdecode 操作,处理结果就是 [%E4,%B8,%AD],然后将其返回给 getParameter 方法。 在服务器端,我们可以使用 java.net.URLDecoder.decode 方法来将数据还原成原始的中文数据...
序列化指令`Serialize`的基本操作如下: 1. **数据转换**:首先,你需要定义一个或多个自定义数据类型(UDT或STRUCT),这些数据类型包含各种变量,如BOOL、BYTE、INT等。然后,你可以创建这些数据类型的实例,并...
在PHP中,`serialize()` 和 `unserialize()` 是两个非常重要的内置函数,它们主要用于数据的序列化和反序列化。序列化是将复杂的数据结构(如对象、数组)转换为字符串的过程,便于存储或传输。而反序列化则是将这个...
在PHP中,序列化是将变量转换为可存储或传输的字符串的过程,而反序列化则是将该字符串...而如果数据主要在PHP环境中操作,且需要保留对象状态或使用特殊数据类型,那么 `serialize()` 和 `unserialize()` 更为适用。
form-serialize-and-calculate.html
在PHP开发中,序列化和反序列化是常见的数据处理操作,它们允许我们将变量的状态转换为字符串以便存储或传输,然后在需要时恢复为原始结构。`swoole_serialize`是一个专门为PHP7设计的高性能序列化库,尤其在C/C++...
在PHP中,经常使用的序列化方式包括了PHP原生的serialize以及更为通用的JSON格式化。以下是根据给定文件信息,对PHP的serialize序列化和JSON格式化数据分析的知识点进行详细说明。 首先,PHP的serialize函数的作用...
这种机制对于需要临时保存变量状态,然后重新加载它们的场景非常有用,例如,在会话管理或者数据持久化操作中。 序列化的数据通常包含了变量类型和结构信息,因此它能恢复成与原始变量结构相同的数组或对象。在CMS...