最近研究php批量提交发布储存,因为本人也算小白,所以拿DEDE研究了一番。
已经知道dede发布文章时是单选单发的,然后我尝试修改
<form name="form1" action="article_add.php" enctype="multipart/form-data" method="post" onSubmit="return checkSubmit()">
<select name='typeid' size='1'>
<option value='0' selected>请选择栏目...</option>
<option value='2' selected>2</option>
<option value='3' selected>2</option>
</select>
<input name="title" type="text" id="title" value="标题" style="width:388px" />
<textarea name="description" rows="5" id="description" style="width:80%;height:50px">内容</textarea>
直接改成
<form name="form1" action="article_add.php" enctype="multipart/form-data" method="post" onSubmit="return checkSubmit()">
<input type='checkbox' name='typeid' id='typeid' value='0' >请选择栏目...
<input type='checkbox' name='typeid' id='typeid' value='1' >1
<input type='checkbox' name='typeid' id='typeid' value='2' >2
<input name="title" type="text" id="title" value="标题" style="width:388px" />
<textarea name="description" rows="5" id="description" style="width:80%;height:50px">内容</textarea>
勾选发布多个栏目,可是发布之后却只显示在一个栏目里,然后我研究了一下发现是php接收不到位写入数据库需要循环处理,php的循环处理就不知道怎样写了。然后又通过网上搜有人说循环处理影响效率,所以还有没有更好的方式

解决方案 »

  1.   

    同名表单控件要按数组形式命名,这是 php 的约定
    说 循环处理影响效率 的人就是白痴
      

  2.   

    兄弟 你.......我不知道该怎么说你呢 你checkbox为什么name的值是一个变量 不是数组? 你不是数组的话 他选择多个 就会覆盖掉前面的或者只留前面的一个啊.老兄 你把'typeid改成'typeid[]什么事情都决绝了.
      

  3.   

    把前端提交'typeid改成'typeid[] 测试了一下还是无法使用 ,是否php接收$typeid也改成$typeid[] 因为测试无法使用,然后我搜索$typeid 还挺多的,我也无法找到$_POST[typeid'] 接收的参数,不知道dede的代码是如何做的接收
      

  4.   

    <input type='checkbox' name='typeid[]' id='typeid' value='1' >1
    <input type='checkbox' name='typeid[]' id='typeid' value='2' >2
    提交后 $_POST['typeid'] 数组就是
    不过请注意:没有选中的 checkbox 是不会被提交的,也就是说 $_POST['typeid'] 可能并不存在
      

  5.   

    name='typeid[]' 是正解,如果你什么都没接收到,看一下,后台取到的$_POST['typeid']是一个数组,取值需要使用下标如$_POST['typeid'][0] 
      

  6.   

    PHP代码接收怎么写的。
      

  7.   

    没有这个$_POST 接收 ,我用dede写的无法找到$_POST ,他是直接$typeid了  $typeid一直返回的是0 , 只有这一串 $typeid = isset($typeid) && is_numeric($typeid) ? $typeid : 0;
      

  8.   

    另外是否所有name 值都要加 []  因为还有 name="title"
      

  9.   

    <input type='checkbox' name='typeid' id='typeid' value='0' >请选择栏目...
    <input type='checkbox' name='typeid' id='typeid' value='1' >1
    <input type='checkbox' name='typeid' id='typeid' value='2' >2
    这三个input 里的id都是"typeid"  id是唯一的  不能一样  可以将这三个里的  id='typeid'  这段代码去掉  
      

  10.   

    还要记得把name改为  name="typeid[]"
      

  11.   

    <form name="form1" action="article_add.php" enctype="multipart/form-data" method="post" onSubmit="return checkSubmit()">
    <input type='checkbox' name='typeid[]'  value='0' >请选择栏目...
    <input type='checkbox' name='typeid[]'  value='1' >1
    <input type='checkbox' name='typeid[]'  value='2' >2
    <input name="title" type="text" id="title" value="标题" style="width:388px" />
    <textarea name="description" rows="5" id="description" style="width:80%;height:50px">内容</textarea>
    php页面获取参数使用$_POST['typeid']就是多选框的值了      (***需要注意一点,在js的checkSubmit()函数里面必须有提交操作)