可以考虑用个hidden保存所有选中了的值
值与值之间可以用个间隔符,然后在服务器端通过分隔符把值取出放到数组里

解决方案 »

  1.   

    类似http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=77180
      

  2.   

    hillhero789(丘),可以具体点吗?
      

  3.   

    有页面:
    <p>爱好; (复选框)
      篮球<input type="checkbox" name="Hobby[]" value="篮球">;        
      足球<input type="checkbox" name="Hobby[]" value="足球">;
      听音乐<input type="checkbox" name="Hobby[]" value=" 听音乐">       
      </p>在PHP中定义一个变量$MyHobby存放用户选中的项。
      

  4.   

    page1.php<form action="page2.php" method="post"><p>爱好; (复选框)
      篮球<input type="checkbox" name="Hobby[]" value="篮球">;        
      足球<input type="checkbox" name="Hobby[]" value="足球">;
      听音乐<input type="checkbox" name="Hobby[]" value=" 听音乐">       
      </p>
      <p><input type="submit"></p>
    </form>
    -----------------
    page2.php<?php$MyHobby=$_POST['Hobby'];for($i=0; $i<count($MyHobby); $i++){
      echo $MyHobby[$i];
    }
    ?>
      

  5.   

    php约定表单的同名变量书写成数组形式,请认真看一下手册的开始章节
      

  6.   

    写成数组形式,无法做javascript的表单验证...最好写成同名非数组形式,然后用hidden写成以逗号分隔的字符串进行传递
      

  7.   

    谢谢大家的解答!
    <?php$MyHobby=$_POST['Hobby'];for($i=0; $i<count($MyHobby); $i++){
      echo $MyHobby[$i];
    }
    ?>
    这样做只能在$MyHobby中存放一个Hobby,然后就马上输出,
    但是怎么样将用户选择的爱好全部存放到$MyHobby,然后才一次就全部输出。
    因为我是要将$MyHobby插入到数据库的一个字段中的。
    麻烦再解答一下。本问题再加20分。
      

  8.   

    或者请提供一种方案:page1.html
    <form action="page2.php" method="post"><p>爱好; (复选框)
      篮球<input type="checkbox" name="Hobby[]" value="篮球">;        
      足球<input type="checkbox" name="Hobby[]" value="足球">;
      听音乐<input type="checkbox" name="Hobby[]" value=" 听音乐">       
      </p>
      <p><input type="submit"></p>
    </form>怎么样设计page2.php
    使得可以将用户选择的爱好插入到数据库的一个字段中。
      

  9.   

    这样php将得到一个叫ccc的阵列。如果您要在客户端对复选框是否被选择、选择了几个用javascript来判断时,javascript会因为复选框的name中含有[]而出错。可以在表单中加入一个隐含域,用javascript设置它的值:
      <script language="javascript"> 
      function check()
      {
      var strchoice="";
      for(var i=0;i<document.news.choice.length;i++)
      { 
      if (document.news.choice[i].checked) 
      { 
      strchoice=strchoice+document.news.choice[i].value+","; 
      } 
      } 
      if (!document.news.choice.length) 
      { 
      if (document.news.choice.checked) 
      { 
      strchoice=document.news.choice[i].value;+"," 
      } 
      } 
      strchoice=strchoice.substring(0,strchoice.length-1); 
      document.news.choiceid.value=strchoice; 
      alert(document.news.choiceall.value); 
      } 
      </script> 
      <html> 
      ... 
      <form name="news" action="test.php" method="post" onsubmit="check()"> 
      <input type="checkbox" name="choice" value="1"> 
      <input type="checkbox" name="choice" value="2"> 
      <input type="checkbox" name="choice" value="3"> 
      <input type="checkbox" name="choice" value="4"> 
      <input type="hidden" name="choiceid" value=""> 
      </form> 
      ... 
      </html>
      

  10.   

    <?php
    $MyHobby=$_POST['Hobby'];
    $h = join(",",$MyHobby);//连接$MyHobby成串
    //入库代码你自己写
    ?>相关问题:数组形式命名的表单变量如何用js访问

    <form action="page2.php" method="post"><p>爱好; (复选框)
      篮球<input type="checkbox" name="Hobby[]" value="篮球">;        
      足球<input type="checkbox" name="Hobby[]" value="足球">;
      听音乐<input type="checkbox" name="Hobby[]" value=" 听音乐">       
      </p>
      <p><input type="submit"></p>
    </form><script>
    o = document.all["Hobby[]"];
    for(i=0;i<o.length;i++)
      alert(o[i].value);
      

  11.   

    to kenko(无聊人) 
    "这样做只能在$MyHobby中存放一个Hobby,然后就马上输出,"----------------不是这样的
    $MyHobby是数组,已经存了你打勾勾的所有Hobby,你可以用var_dump看一下
    <?php$MyHobby=$_POST['Hobby'];var_dump($MyHobby);for($i=0; $i<count($MyHobby); $i++){
      echo $MyHobby[$i];
      //在这里加入插入数据库的代码,可以一个Hobby一个Hobby的插入
    }
    ?>xuzuning(唠叨) 的方法也很好
      

  12.   

    但是我的表中只要一个字段是给爱好用的哦!用户    性别    爱好
    --------------------
    KENKO   男      ??
      

  13.   

    xuzuning(唠叨) 的方法是解决了插入的问题,但如果我又要从数据库中取出爱好的话,
    那么那些爱好不是缠在一起了(篮球足球听音乐),分不开来啊,这样可能会产生歧义啊?
    本帖再加20分,共60分。
      

  14.   

    没能理解吗?
    <?php
    $MyHobby=$_POST['Hobby'];
    $h = join(",",$MyHobby);//连接$MyHobby成串
    //入库代码你自己写
    ?>
    假定复选框全部选择,则提交后
    $MyHobby=$_POST['Hobby'];
    数组$MyHobby的内容为
    [0]=>篮球,        
    [1]=>足球,
    [2]=>听音乐$h = join(",",$MyHobby);
    后$h的内容为 篮球,足球,听音乐
    这样的串还不能让你入库吗?
      

  15.   

    xuzuning(唠叨) 的方法是解决了插入的问题,但如果我又要从数据库中取出爱好的话,
    那么那些爱好不是缠在一起了(篮球足球听音乐),分不开来啊,这样可能会产生歧义啊?
      

  16.   

    发送者 xuzuning 发送时间 2003-11-25 15:30:24 删除  回复  
    内容 就知道有这一说
    请注意入库时各项爱好是用“,”分隔的
    取出时只需$ar = split(",",爱好);就又还原成数组了
    ----------------------------------------------------------------
    原贴内容:
    xuzuning(唠叨) 的方法是解决了插入的问题,但如果我又要从数据库中取出爱好的话,
    那么那些爱好不是缠在一起了(篮球足球听音乐),分不开来啊,这样可能会产生歧义啊 
      

  17.   

    楼上的是: xuzuning(唠叨) 的解答,组织起来我自己收藏!呵呵! 非常谢谢大家!
    分我会额外给的!