<input type="checkbox" name="cb[]" value="<? echo $array1[$num];?>" />
  <input type="hidden" name="username[]" value="<? echo $username[$num];?>" />
  <input type="hidden" name="userage[]" value="<? echo $userage[$num];?>" />
  <input type="hidden" name="useraddr[]" value="<? echo $useraddr[$num];?>" />

解决方案 »

  1.   


    请注意代码中是有循环的,可以生成多个<div>...</div>,<div>中包含的就是  <input type="checkbox" name="cb[]" value="<? echo $array1[$num];?>" />
      <input type="hidden" name="username[]" value="<? echo $username[$num];?>" />
      <input type="hidden" name="userage[]" value="<? echo $userage[$num];?>" />
      <input type="hidden" name="useraddr[]" value="<? echo $useraddr[$num];?>" />就比如淘宝的商品搜索结果列表一样,选中其中几个商品前面的checkbox,然后点“比较”按钮,提交checkbox数据到下一个php文件。我的流程和淘宝有一些差别,我不光想提交checkbox数据,还要提交已经被选中checkbox对应的兄弟数据,也就是那些hidden数据 .不知我说清楚了没有?
    我想了很多办法,都没办法做到
      

  2.   

    淘宝的搜索结果列表http://list.taobao.com/browse/15-1512/t-y---a-y-80-list-ends-0-all-1512.htm选中商品前面的checkbox,然后点“对比选中的宝贝”,会弹出新页面,这个新页面的数据和结果列表页面的数据有很多是相同的,因此我想,在这两个页面中是不是可以共享数据呢?
      

  3.   

    只需要一组hidden就够了,把array写入javascript的一个array
    当onsubmit检测哪个checkbox.checked=true,然后把对应的javascript的array值赋给hidden
    然后return true提交
      

  4.   

    可以取关联名,
    比方说,你选中的项的为"checkBox1",则
     <input type="hidden" name="usernameCHK1" value="<? echo $username[$num];?>" />
    <input type="hidden" name="userageCHK1" value="<? echo $userage[$num];?>" />
    <input type="hidden" name="useraddrCHK1" value="<? echo $useraddr[$num];?>" />
    其它的类似,提交时如果是选中的,比方说"checkBox1"被选中,则到了second.php,可以只选
    $_RQUEST['usernameCHK1'],$_RQUEST['userageCHK1'],$_RQUEST['useraddrCHK1'],
    方法有点木,应该能解决你的问题,或者,你用JS来控制
      

  5.   

    你的代码中只有一个form,如果仅仅是提交表单,那么所有的数据都会提交过去,你需要得到的和你不需要的都会提交到second.php,可以在second.php页面只用你所需要的,并完成后续逻辑 
    表单还是按唠叨老大那样改
    checkbox只有选中的才会有值传过去,所以你可以根据所得到的checkbox的值就可以知道选择的是数组中的哪个,并相应的取得需要的hidden元素的值:
    示例:
    <?php
    //把你需要的数据分别存在$cb,$username,$userage,$useraddr
    //注:仅限于只有一个checkbox被选中
    //取得checkbox的值
    $cb = $_POST['cb'][0]; //只有一个checkbox被选中时,传递过来的值都放在数组的第一个元素
    //根据checkbox的值取得需要的hidden值
    $username = $_POST['username'][$cb];
    $userage = $_POST['userage'][$cb];
    $useraddr = $_POST['useraddr][$cb];
    ?>
    当然还有办法解决,可以把表单分开,每个循环是一个表单,点击checkbox触发相应表单提交
      

  6.   

    好,spacet(空格t) 已经帮我解释了。尽管input type="hidden"对象总是会被提交的,但是checkbox只在被选中后才会提交。
    你只需通过提交的checkbox的值选取对应的hidden的值就可以了。
    表单还要改一下
    <input type="checkbox" name="cb[]" value="<? echo $array1[$num];?>" />
    <input type="hidden" name="username[<? echo $num;?>]" value="<? echo $username[$num];?>" />
    <input type="hidden" name="userage[<? echo $num;?>]" value="<? echo $userage[$num];?>" />
    <input type="hidden" name="useraddr[<? echo $num;?>]" value="<? echo $useraddr[$num];?>" />如果你不需要传递全部数据,在可以把用户信息组装在checkbox的value中,提交后再拆分
    <input type="checkbox" name="cb[]" value="<? echo $array1[$num].','.$username[$num].','.$userage[$num].','.$useraddr[$num];?>" />
      

  7.   

    xuzuning(唠叨) 提到的最后一种办法,把信息全部放在checkbox的value中,当value字符串长度达到一定极限时,就会出现异常,value的内容就会显示在页面上,呵呵,乱套了。我最开始想到的就是这个办法。现在问题已经解决了,谢谢各位!