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


      第一种批量添加(不推荐,了解即可)

                                                   注:本文 使用PHP的 CI框架进行操作的。如有不明,请参考CI手册

    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);
    然后在执行入库就可以了。
    这种办法之前灭有用过,所以记下来了。当然,还有很多种批量添加的方法。大家可以别的地方找到。


    之后在公司一位大牛那又了解了这种批量添加。相对的来说这个还是比较方便的

    第二种批量添加

    页面中 js代码 一起加进来

    <script type="text/javascript" src="<?php echo $this->config->item('base_url');?>/public/js/jquery-1.7.2.min.js"></script>
    <script>
    function submitForm()
    {
    	var res = '';
    	$.ajax({
    		type:'post',
    		url:'<?php echo $this->config->item('base_url');?>Show/add',
    		dateType:'json',
    		data:$('#formArray').serialize(),
    		success:function(data)
    		{
    			res = data;
    		}
    	})
    	if(res.err == 0)
    	{
    		warning('<strong>成功</strong>  '+res.msg);
    	}
    	else
    	{
    		warning('<strong>错误</strong>  '+res.msg);
    	}
    }
    
    function warning(a)
    {
    	$('#warning').html(a);
    	$('#warningerr').show();
    }
    </script>
    <body>
    <div class="alert alert-warning alert-dismissible" role="alert" id="warningerr" style="display: none;">
    	<div id="warning"><strong>错误:</strong> 角色名重复</div>
    </div>
    <form id="formArray" name="formArray" method="post">
    	<input type="hidden" name="kgId"  id="kgId" value="<?php echo $kgInfo['kgId']?>">
    	<table style=" %50; height: %50; border:1px solid">
    		<tr>
    			<td>GoodsName:</td>
    			<td>GoodsMoney:</td>
    
    		</tr>
    
    		<?php if(!empty($arr)) foreach($arr as $k=>$v){?>
    		<tr>
    			<td><input type="text" name="goodsName[]" id="goodsName" value="<?php echo $v['goodsName']?>"> </td>
    			<td><input type="text" name="goodsMoney[]" id="goodsMoney"></td>
    			<input type="hidden" name="monthNum[]" id="monthNum" value="<?php echo $v['monthNum']?>" />
    		</tr>
    		<?php }?>
    	</table>
    	<button name="button" type="button" id="button" onclick="submitForm()">CLICK ME !</button>
    
    </form>
    

     后台程序

    $res = array('err'=>1 , 'msg'=> '参数错误');
    		$goodsName = $this->input->post('goodsName');
    		$goodsMoney = $this->input->post('goodsMoney');
    		$monthNum = $this->input->post('monthNum');
    		$kgId = $this->input->post('kgId');
    		$param = array();
    		if (!empty($goodsName))
    		{
    			foreach($goodsName as $k=>$v)
    			{
    				$param = array();
    				$param['goodsName'] = $goodsName[$k] ? $goodsName[$k] : '';
    				$param['goodsMoney'] = $goodsMoney[$k] ? $goodsMoney[$k] : 0.00;
    				$param['monthNum'] = $monthNum[$k] ? $monthNum[$k] : 0;
    				$param['kgId'] = $kgId;
    				$lastId = $this->showmodel->addData($param);
    				if(!empty($lastId))
    				{
    					$res['err'] = 0;
    					$res['msg'] = '添加成功!';
    				}
    			}
    		}
    		echo json_encode($res);
    

      

     

    使用数组作为域名称

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

  • 相关阅读:
    c#9
    Jmeter--自己写并发压测脚本一定会遇到的类
    Jmeter从数据库获取测试数据, 作为下一个接口参数方法
    Jmeter-从数据库中获取数据并作为变量传输
    Java文件操作
    Java读取文件
    Java字符串处理——String类常用方法
    Eclipse导出可执行jar包步骤
    批处理常用DOS命令之for简单 002
    批处理常用DOS命令之for简单 001
  • 原文地址:https://www.cnblogs.com/g825482785/p/CI.html
Copyright © 2020-2023  润新知