2011-12-04 42 views
0

如何将5列中的复选框的值保存到数据库(PHP和JQUERY)中?将复选框的值保存在数据库的5列中

PHP代码显示6列。有5列包含从数据库循环的复选框。

--- PHP -----------------------------------

 <table id="tblISP" border="0">   
    <tr> 
     <th style="width:20px"> 
     </th> 
     <th> 
      MenuID 
     </th> 

     <th> 
      Menu 
     </th> 
     <th> 
      Delete 
     </th> 
     <th> 
      Upddate 
     </th> 
     <th> 
      View 
     </th> 
     <th> 
      Save 
     </th> 
    </tr> 
    <tr> 
     <td>ALL <input type="checkbox" class="menuiddd" name="checkmenuid" id="checkmenuid"/></td> 
     <td>&nbsp;</td> 
     <td>&nbsp;</td> 
     <td>ALL<input type="checkbox" class="menuidddel" name="checkdelete" id="checkdelete"/></td> 
     <td>ALL<input type="checkbox" class="menuiddupdate" name="checkupdate" id="checkupdate"/></td> 
     <td>ALL<input type="checkbox" class="menuiddview" name="checkview" id="checkview"/></td> 
     <td>ALL<input type="checkbox" class="menuiddsave" name="checksave" id="checksave"/></td> 
    </tr> 
         <tr> 
     <td> 

       <input type="checkbox" class="menuiddd" name="idd[]" id="idd[]" value="<?php echo $row["mid"]; ?>"/> 
     </td> 
     <td> 
      <?php echo $row["mid"]; ?> 
     </td> 
     <td> 
      <?php echo $row["mname"]; ?> 
     </td>  
     <td> 
      <input type="checkbox" class="menuidddel" name="del[]" id="del[]" value="chkdel" /> 
     </td> 
     <td> 
      <input type="checkbox" class="menuiddupdate" name="upd[]" id="upd[]" value="chkupd" /> 
     </td> 
     <td> 
      <input type="checkbox" class="menuiddview" name="vie[]" id="vie[]" value="chkvie" /> 
     </td> 
     <td> 
      <input type="checkbox" class="menuiddsave" name="sav[]" id="sav[]" value="chksav" /> 
     </td> 
    </tr> 

     <tr> 
     <td colspan="3"> 
      <!--<a id="hlsa" href="javascript:exit(0);">Select All</a> 
      <a id="hldsa" href="javascript:exit(0);">DeSelect All</a>--> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="3" align="center"> 
      <hr/> 
      <input type="button" value="Save" id="btSave" name="btSave" style="cursor:pointer;float:none" class="allbutton"> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="3" id="dvProc1" align="center"> 

     </td> 
    </tr> 
    </table>Save check-box value within 5 columns to database 

--------------解决方案------------ jquery ------------

jquery反应时单击按钮保存然后获取信息从复选框保存到数据库。

$(document).ready(function(){ 

      $("#btSave").unbind(); 
      $("#btSave").click(function(){   

       var idd = []; 
       var del = []; 
       var upd = []; 
       var vie = []; 
       var sav = []; 

       $("input[name='idd[]']:checked").each(function() { 
        idd.push($(this).val()); 
       }); 

       $("input[name='del[]']:checked").each(function() { 
        del.push($(this).val()); 
       }); 

       $("input[name='upd[]']:checked").each(function() { 
        upd.push($(this).val()); 
       }); 

       $("input[name='vie[]']:checked").each(function() { 
        vie.push($(this).val()); 
       }); 

       $("input[name='sav[]']:checked").each(function() { 
        sav.push($(this).val()); 
       }); 


       var mainarray=[idd,del,upd,vie,sav]; 
       var transposed = mainarray.transpose(); 

       //-----------------------alert(str);--note--need return------------- 
       alert(transposed.join(';')); 

      }) 


      $("#checkmenuid").click(function(){ 
       $('.menuiddd').attr('checked', $(this).is(':checked') ? 'checked' : ""); 
      }); 


      $("#checkdelete").click(function(){ 
       $('.menuidddel').attr('checked', $(this).is(':checked') ? 'checked' : ""); 
      }); 

      $("#checkupdate").click(function(){ 
       $('.menuiddupdate').attr('checked', $(this).is(':checked') ? 'checked' : ""); 
      }); 


      $("#checkview").click(function(){ 
       $('.menuiddview').attr('checked', $(this).is(':checked') ? 'checked' : ""); 
      }); 


      $("#checksave").click(function(){ 
       $('.menuiddsave').attr('checked', $(this).is(':checked') ? 'checked' : ""); 
      }); 

}); 

</script> 

回答

0

我不能完全肯定我已经确定了你的问题,但你处理任何的jQuery之前,你应该建立一个有效的系统,而无需任何JavaScript。与其定义一个处理表单提交的非标准方法,您可以在添加一层干净的javascript来处理异步提交之前,直接写它。首先,您需要将输入元素封装到表单元素中,然后编写一个PHP脚本来分析全局$ _POST数组,并根据需要执行各种数据库命令。根据用户在表单上选择的内容,您可以使用此PHP层来确定应该对数据库进行哪些调用的逻辑。请注意,未选中的复选框实际上并未在POST请求中发送,因此您必须在PHP中使用isset()以了解它们是否未选中。

一旦这样安排,你可以使用jQuery异步提交表单,你会不会导致页面刷新:

$(function() { 
    $('form#yourformid').submit(function(event) { 
     event.preventDefault(); // stop the page from redirecting 

     // serialise your form's data, and send it in a POST request 
     // to the form's action attribute 
     $.post(
      $(this).attr('action'), 
      $(this).serialize(), 
      function() { 
       alert('Data successfully saved.'); 
      }); 
    }); 
}); 
+0

感谢这么多您的意见 –

相关问题