设为首页 收藏本站
查看: 968|回复: 0

[经验分享] PHP订单操作 serialize

[复制链接]

尚未签到

发表于 2017-3-28 14:19:18 | 显示全部楼层 |阅读模式
<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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-356605-1-1.html 上篇帖子: PHP验证码类实现 下篇帖子: php图片验证码类
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表