我先重复一下你的要求:从数据库中获得一共要显示多少checkbox,再从数据库中获得另一个数据集来确定那些checkbox是要被打钩的。假定:你的
<input type="checkbox" name="idplace[]" value=" <?=$rs[$i][idplace]?>" id=" <?=$rs[$i][idplace]?>">
中的value=后面的$rs[$i][idplace]的值和你
$array=explode(",",fixidstr($result['idplace'])); 
中的值是对应的,那么代码可以一次完成(手边没有PHP编辑器,写个伪代码):先取出$array<input type="checkbox" name="idplace[]" value=" <?=$rs[$i][idplace]?>" id=" <?=$rs[$i][idplace]?>" checked="<?php if $rs[$i][idplace] is in $array echo 'true' else echo 'false' ?>">应该就可以了。你需要再补充一下HTML的知识……

解决方案 »

  1.   


    <table>
     <tr> 
        <td nowrap bgcolor="#f2f2f2">显示位置: </td> 
        <td> 
         <div id='divPlace'>
          <input type="checkbox" name="idplace[]" value="11" id="1">1
          <input type="checkbox" name="idplace[]" value="31" id="1">31
          <input type="checkbox" name="idplace[]" value="41" id="1">41
         </div>
        </td> 
      </tr> 
    </table>
    <?php
     //这是你数据库的串
     $value = "11,41";
    ?>
    <script language='javascript'>
      //javascript必须要放到传过来的串和<input checkbox的这个下面
      var strSearch = "<?=$value?>";
      var arrSearch = strSearch.split(",");
      var divPlace = document.getElementById('divPlace');
      alert(divPlace.childNodes.length);
      for(var i=0; i< divPlace.childNodes.length; i++)
      {
        if(divPlace.childNodes[i].nodeName == "INPUT")
        {
          divPlace.childNodes[i].checked = searchValue(divPlace.childNodes[i].value, arrSearch);
        }
      }
      
      function searchValue(search, arraySearch)
      {
         flag = false;
         for(var i=0;i< arrSearch.length; i++)
         {
            if(search == arrSearch[i])
              flag = true;
         }
         return flag;
      }
    </script>
      

  2.   

    jaker的够新颖,,,顶一个。.........