PHP的一个批量添加中快捷的方式

  html页面中运用了一个input内的数组 类似于这样的

<form name="form1"  class="form-horizontal" action="<?php echo $this->config->item(‘base_url‘);?>/admincp/Goodsvideosaging/insert" enctype="multipart/form-data" method="post" >

                                        <input type="hidden" name="kgId" id="kgId" value="<?php echo $kgInfo[‘kgId‘];?>" />
                                   <div class="table-responsive clearfix" style="margin-top:40px">
						<table class="table table-striped">
							<thead>
								<tr>
                                    <th>商品名称</th>
                                    <th>商品金额</th>
								</tr>
							</thead>
							<tbody>
                        		<?php if(!empty($month)) foreach($month as $k => $val){?>
								<tr>
                                	<td><input type="text" name="formArray[<?php echo $k;?>][goodsName]" id="goodsName" /></td>
                                    <input type="hidden" name="formArray[<?php echo $k;?>][monthNum]" id="monthNum" value="<?php echo $val[‘monthNum‘]?>" />
						            <td><input type="text" name="formArray[<?php echo $k;?>][goodsMoney]" id="goodsMoney" />元</td>
						        </tr>
                                <?php }?>
                                <input type="hidden" name="allotFlag" id="allotFlag" value="1" />
							</tbody>
				        </table>
                        <div class="form-group">
                    				<div class="col-md-4 col-md-offset-1">
                    				<input type="hidden" name="errormsg" id="errormsg" value="">
                                    <button type="submit" class="btn btn-primary">提交</button>
                    				</div>

                                </div>
						</form>

  php接收页面中

        $formArray = $this->input->post(‘formArray‘);
        $kgId = intval($this->input->post(‘kgId‘));
        $monthNum = array($this->input->post(‘monthNum‘));
        $goodsName = array($this->input->post(‘goodsName‘));
        $goodsMoney = array($this->input->post(‘goodsMoney‘));
        $allotFlag = intval($this->input->post(‘allotFlag‘));
        $KgArr = array(‘kgId‘=>$kgId);
        foreach($formArray as $k=>$v)
        {
            $newV = array_filter($v);

            if(isset($newV[‘goodsName‘]) && isset($newV[‘monthNum‘]) && isset($newV[‘goodsMoney‘]))
            {
                $newArray = array_merge($KgArr , $newV);
                $goodsId = $this->aging->addData($newArray);
            }    

得到的formArray为一个数组。

是这种形式的

array(4) {
  [0]=>
  array(3) {
    ["goodsName"]=>
    string(3) "111"
    ["monthNum"]=>
    string(1) "1"
    ["goodsMoney"]=>
    string(3) "111"
  }
  [1]=>
  array(3) {
    ["goodsName"]=>
    string(3) "222"
    ["monthNum"]=>
    string(1) "3"
    ["goodsMoney"]=>
    string(2) "22"
  }
  [2]=>
  array(3) {
    ["goodsName"]=>
    string(0) ""
    ["monthNum"]=>
    string(1) "6"
    ["goodsMoney"]=>
    string(0) ""
  }
  [3]=>
  array(3) {
    ["goodsName"]=>
    string(0) ""
    ["monthNum"]=>
    string(2) "12"
    ["goodsMoney"]=>
    string(0) ""
  }
}

  所以我们得先遍历这个数组,遍历之后。此时的$v仍然是一个一维数组此时按照CI的数据库添加数据来说,已经是没什么为题了。但是打印出来的数组中仍然有空数组,所以此时我们在这采用了

$newV = array_filter($v);先去掉空的数组由于在此时我需要跟别的数组一起合并入库,所以在此时我们运用到了数组合并的这样一个函数$newArray = array_merge($KgArr , $newV);然后在执行入库就可以了。

这种办法之前灭有用过,所以记下来了。当然,还有很多种批量添加的方法。大家可以别的地方找到。

使用数组作为域名称

这一点在CI手册的表单验证类里面有详解。附上地址 http://codeigniter.org.cn/user_guide/libraries/form_validation.html

时间: 2024-08-28 09:39:59

PHP的一个批量添加中快捷的方式的相关文章

工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话"Hello World!!"   2> 编写一个能输出系统信息的 /root/sysinfo 脚本,执行后依次输出当前红帽系统的版本信息.当前使用的内核版本.当前系统的主机名 方案: 规范Shell脚本的一般组成: 1> #! 环境声明(Sha-Bang)    2> # 注释文本 

android批量添加联系人

研究生期间就没写过Java代码了,这几天由于想做一个统计网页词频的工具,但是使用C++不是很方便,于是又用Java做了一个小工具.翻开电脑中以前的文件,发现之前还做过一个android中批量添加联系人的工具,瞬间感觉好亲切,也感叹时间过得好快,一眨眼研究生就快要过完了. 记得当初做这个批量添加联系人的工具是刚来读研时,一大堆新同学的手机号码需要添加,班长整理出来同学们的通讯录后就得一个一个输入联系人和号码到手机中,想想这罪可有的受,于是就想能不能让手机直接读取xls格式(Excel格式)的文件到

EF6基础系列(12)--- EF进行批量添加/删除

EF6添加了批量添加/删除实体集合的方法,我们可以使用DbSet.AddRange()方法将实体集合添加到上下文,同时实体集合中的每一个实体的状态都标记为Added,在执行SaveChange()方法时为每个实体执行Insert操作:同样的我们使用DbSet.RemoveRange()方法将集合中的所有实体都标记为deleted状态,在执行SaveChange()方法时为每一条数据执行delete操作. 通过AddRange()和RemoveRange()方法可以有效提升性能,所以建议在进行不批

MySQL 批量添加

自己封装的一个批量添加. $data 是一个二维数组.key对应是数据表的字段名: /** * 批量创建 * @param array $data * @return int $res 影响行 * @author Wen */ public function CreateMore( $data ){ // 处理数据获取 要添加数据的字段名 $sql_key = NULL; $data_key = array_keys( $data[0] ); foreach ( $data_key as $k_

iconfont 批量添加购物车 及自开发chrome插件

起因 iconfont非常好用,但是如果要批量的添加icon到自己的购物车简直就是噩梦,一个一个点击太扯蛋,只有自己想办法了. 思路 打开列表详情页,例如随便一个包, 右键-> 开发者工具 -> console 运行如下代码,选取所有icon下的购物车按钮,触发点击. 1 document.querySelectorAll('.icon-gouwuche1').forEach(item=>item.click()); 这里iconfont网站有个bug,超过一定数量(MACPRO chr

解决JavaScript中批量添加事件的问题

这是JavaScript中一个老生常谈的问题,也是初学者较难理解的问题.当给一系列元素添加事件时,常常会出现一些我们不希望出现的问题.例如以下代码: //给li元素批量添加click事件 window.onload = function(){ var lists = document.getElementsByTagName("li"); for(var i=0;i<lists.length;i++){ lists[i].onclick = function(){ alert(i

.Net中批量添加数据的几种实现方法比较

在.Net中经常会遇到批量添加数据,如将Excel中的数据导入数据库,直接在DataGridView控件中添加数据再保存到数据库等等. 方法一:一条一条循环添加 通常我们的第一反应是采用for或foreach循环一条一条的添加. for (int i = 0; i < dgv.Rows.Count; i++) { string sql = "insert into ....."; SqlHelper.ExcuteNonQuery(CommandType.Text, sql, nu

一个批量修改文件夹中文件名的命令

1. 只修改当前目录下的文件 [root]# rename -s  \.png  \_iphone.png  * 这个是修改目录下 的所有文件名,加入一个后缀 如: 1.png    ->>>   1_iphone.png 2. 递归修改当前目录下的所有子文件夹 [root]# find ./ -name  "*.png" | xargs  -I {} rename -s \.png  \_iphone.png  {} 如: 2.png    ->>>

在CentOS(Linux)中添加单个IP和批量添加多个IP地方法

一.添加单个IP地址: 在/etc/sysconfig/network- s/中新建文件ifcfg-eth0:*,*为数字序号,多个IP则依次增大以0为例,建立文件ifcfg-eth0:0 cd /etc/sysconfig/network- s/vi ifcfg-eth0:0 输入内容格式: DEVICE=eth0:0TYPE=EthernetONBOOT=yesBOOTPROTO=staticIPADDR=要添加绑定的IP地址NETMASK=子网掩码GATEWAY=网关地址 二.批量添加多个