将5列中的复选框值保存到数据库中

时间:2011-12-04 11:52:02

标签: php jquery

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

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>

1 个答案:

答案 0 :(得分: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.');
            });
    });
});