thinkphp表单数组

今天做一个表单数组实现图片批量上传,js不是很会,在网上找了资料改的,html页面如下:

 

<script type="text/javascript">

  var i = 1;
  function addElement(){
    var tr = document.createElement('tr');
 var td1=document.createElement("td");
 var td2=document.createElement("td");
 var td3=document.createElement("td");
 var td4=document.createElement("td");
 var td5=document.createElement("td");
 var td6=document.createElement("td");
 var td7=document.createElement("td");
 td1.innerHTML="<strong>描述:</strong>";
 td2.innerHTML="<textarea  name='des[]' ></textarea>";
 td3.innerHTML="<strong>图片:</strong>";
 td4.innerHTML="<input type='text' name='image[]' id='image"+i+"'/><IFRAME name=fo frameBorder=0 height=24 marginHeight=1 marginWidth=1 scrolling=no BORDERCOLOR='#CCCCFF' src='__APP__/Upimg/upimgs/ind/"+i+"' style='vertical-align: middle;'></iframe><span style='color:red'>请上传小于2M的图片</span>";
 td5.innerHTML="<strong>排序:</strong>";
 td6.innerHTML="<input type='text'  name='px[]' value='5'/>";
 td7.innerHTML="<a class='editbtn' href='javascript:void(0);' οnclick='addElement()'>增 加</a> | <a class='editbtn' href='javascript:void(0);' οnclick='dropElement()'>删减</a>";

    
 tr.appendChild(td1);
 tr.appendChild(td2);
 tr.appendChild(td3);
 tr.appendChild(td4);
 tr.appendChild(td5);
 tr.appendChild(td6);
 tr.appendChild(td7);
 tr.id = 'Elem'+i;
 document.getElementById('pdr1').appendChild(tr);
 i++;
  }
  function dropElement(){
    var aaa = document.getElementById('Elem'+(i-1));
 document.getElementById('pdr1').removeChild(aaa);
 i--;
  }
function checkForm()
{
 for(k=i;k>=0;k--)
 {
  if(document.getElementById("image"+k).value=="")
  {
   alert("图片不能空");
   return false;
  }
 }
}
</script>
<div style="margin:20px auto">
<form method="post" name="form1" action="__URL__/insert" οnsubmit="return checkForm();">
<input type="hidden" name="fid" value="{$fid}"/>
<table class="table" cellspacing="1" cellpadding="2" width="90%" align="center"
border="0" id="pdr1">

  <tbody>
    <tr >
      <td width="5%" class="td_bg" align="right"><strong>描述:</strong></td>
      <td class="td_bg" width="25%"><textarea  name="des[]"></textarea></td>
     
       <td width="5%" class="td_bg" align="right"><strong>图片:</strong></td>
      <td class="td_bg" width="25%"> <input type="text" name="image[]" id="image0"/><IFRAME name=fo frameBorder=0 height=24 marginHeight=1 marginWidth=1
                        scrolling=no BORDERCOLOR="#CCCCFF"
                        src="{:U('Upimg/upimgs','ind=0')}" style="vertical-align: middle;"></iframe>
                <span style="color:red">请上传小于2M的图片</span></td>
               
       <td width="5%" class="td_bg" align="right"><strong>排序:</strong></td>
      <td class="td_bg" width="20%"><input type="text"  name="px[]" value="5"/></td>
        <td width="10%" class="td_bg" align="right"><a class="editbtn" href="javascript:void(0);" οnclick="addElement()">增 加</a> | <a class="editbtn" href="javascript:void(0);" οnclick="dropElement()">删减</a></td>
    </tr>
  
  </tbody>
</table>
  <input type="submit" name="submit" value=" 添 加 "/>
    </form>

在做__APP__/Upimg/upimgs/ind/+ind这段时,刚开始我用的U()函数,但是把js变量i传入U()函数无法解析,所以在这里改为了url方式。

在获取表单数组并插入数据库时用循环遍历并写入数据库:

foreach($data['description'] as $key)
  {
   $data1['picid']=$fid;
   $data1['description']=$data['description'][$i];
   $data1['image']=$data['image'][$i];
   $data1['px']=$data['px'][$i];
   $result=$model->add($data1);
   $i++;
  }

$data是通过转换来的,可以直接用$_POST,做这个由于不熟悉js,所以在上面花了很多时间,刚开始我是用

 

var tr = document.createElement('tr');

  tr.innerHTML= "<td width='5%' class='td_bg' align='right'><strong>描述:</strong></td>";
  tr.innerHTML+= "<td class='td_bg' width='25%'><textarea  name='des[]'></textarea></td>";   
 tr.id = 'Elem'+i;
 document.getElementById('pdr1').appendChild(tr);

但是ie不兼容,后又在网上找了上面的方法。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值