jquery复选框构建一个数组,其中包含带有id的已更改复选框的列表

时间:2015-03-03 18:22:01

标签: jquery ajax object checkbox

我有一个以下面的json文件为基础的表

[
{"id":"1","rank":"9","content":"Alon","UID":"5","P1":"1","P2":"0","P3":"0","P4":"1","P5":"0"},
{"id":"2","rank":"6","content":"Tala","UID":"6","P1":"1","P2":"0","P3":"0","P4":"1","P5":"0"},
{"id":"3","rank":"9","content":"Alon","UID":"5","P1":"1","P2":"0","P3":"0","P4":"1","P5":"0"},
{"id":"4","rank":"6","content":"Tala","UID":"6","P1":"1","P2":"0","P3":"0","P4":"1","P5":"0"},
{"id":"5","rank":"6","content":"Tala","UID":"6","P1":"1","P2":"0","P3":"0","P4":"1","P5":"0"}]

然后使用jquery填充表格。

$.ajax({
    url: 'test.json',
    type: 'POST',
    success: function (response) {
        var trHTML = '';
        var valueOn = 1;
        var valueOff = 0;

        $.each(response, function (i, item) {
            trHTML += '<tr><td>' + item.rank + '</td><td>' + item.content + '</td><td>' + item.UID + '</td><td>' + '<input type="checkbox" value="' + item.P1 + '"></td><td>' + '<input type="checkbox" value="' + item.P2 + '"></td><td>' + '<input type="checkbox" value="' + item.P3 + '"></td><td>' + '<input type="checkbox" value="' + item.P4 + '"></td><td>' + '<input type="checkbox" value="' + item.P5 + '"></td></tr>';            
        });
        $('#records_table').append(trHTML);

        $('input[type="checkbox"]').each(function () {
            if ( $(this).val() == valueOn ) {
                $(this).attr("checked",true);
            }                     
            if ( $(this).val() == valueOff ) {
                $(this).attr("checked",false);
            }            
        });

        $('tr:odd').css("background", "green");
    },
    error: function (response) {
        console.log('shit shit shit!!!! now see me running!');
    },

});

$('#sendInfo').click(function() {
    var listOfCheckboxes = [];

});

我尝试实现的是发送或创建包含id和值chekbox的字符串或数组,如此{Id:1,{P1:1,P2:0,P3 1,P4:0,P4 :0}}。

我尝试用这个做的基本上就是知道那个人拥有改变的值。

1 个答案:

答案 0 :(得分:0)

我希望我正确地解释你的问题。如果你想获得P1, P2, ect.你会在你的php提交页面上设置value='P1',你可以通过做if($_REQUEST['P1'] === 'Yes')之类的操作来检查是否已经检查了P1。复选框将返回是< / strong>如果选中,则

然后另一方面,如果您想检查是否在 HTML 页面上检查了值。您可以使用这样的$.each语句。

JSFiddle

var a = [{
    "id": "1",
    "rank": "9",
    "content": "Alon",
    "UID": "5",
    "P1": "1",
    "P2": "0",
    "P3": "0",
    "P4": "1",
    "P5": "0"
}, {
    "id": "2",
    "rank": "6",
    "content": "Tala",
    "UID": "6",
    "P1": "1",
    "P2": "0",
    "P3": "0",
    "P4": "1",
    "P5": "0"
}, {
    "id": "3",
    "rank": "9",
    "content": "Alon",
    "UID": "5",
    "P1": "1",
    "P2": "0",
    "P3": "0",
    "P4": "1",
    "P5": "0"
}, {
    "id": "4",
    "rank": "6",
    "content": "Tala",
    "UID": "6",
    "P1": "1",
    "P2": "0",
    "P3": "0",
    "P4": "1",
    "P5": "0"
}, {
    "id": "5",
    "rank": "6",
    "content": "Tala",
    "UID": "6",
    "P1": "1",
    "P2": "0",
    "P3": "0",
    "P4": "1",
    "P5": "0"
}];
var trHTML = '';
$.each(a, function (i, item) {
    trHTML += '<tr><td>' 
    + item.rank 
    + '</td><td>' 
    + item.content 
    + '</td><td>' 
    + item.UID 
    + '</td><td>' 
    + '<input type="checkbox" value="P1" '+check(item.P1)+'></td><td>' 
    + '<input type="checkbox" value="P2" '+check(item.P2)+'></td><td>' 
    + '<input type="checkbox" value="P3" '+check(item.P3)+'></td><td>' 
    + '<input type="checkbox" value="P4" '+check(item.P4)+'></td><td>' 
    + '<input type="checkbox" value="P5" '+check(item.P5)+'></td></tr>';
});
$('#records_table').append(trHTML);

function check(value){
    if(value == 1){
        return 'checked';
    }
}

$('tr:odd').css("background", "yellow");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id='records_table'></table>