如果复选框未选中,则更新MySQL

时间:2015-07-24 17:08:31

标签: php jquery mysql

如果选中了复选框,我将使用此处找到的脚本来更新我的数据库。 https://stackoverflow.com/posts/4592766/revisions

如果我选中一个未经检查的框,它就会起作用。

然而,如果我取消选中复选框,我似乎无法正常工作。它不会更新数据库。

以下是修改后的代码:

$(document).ready(function() {
$("input[type=checkbox]").click(function() {
    var isSel = this.checked;
    var isNotSel = this.unchecked; //added
     $.ajax({
        url: 'file.php',
        type: 'POST',
        dataType: 'json',
        data: {
            id : this.id,
            isSelected : isSel,
            isNotSelected : isNotSel // added

        },
        success: function(data) {
            alert('updated');
        },
        error: function() {
            alert('error');
        }
    });
});
});

这是显示复选框的代码(从数据库创建):

if($status == 'pending')    
{ echo '<input type="checkbox" name="status" id='.$submission_id.' >' .     
$task_name . '<br>'; }
if($status == 'done')
{ echo '<input type="checkbox" name="status" id='.$submission_id.' checked>' 
. $task_name . '<br>'; }

这是file.php的代码

if ($_POST && isset($_POST['isSelected'])) {

$sql = 'UPDATE ft_form_53 SET status = "done" WHERE submission_id = ' . $_POST['id'];

// check if the query was executed
if(mysql_query($sql, $link)){
   // everything is Ok, the data was inserted
   print(1);    
} else {
   // error happened
   print(0);
}
}

if ($_POST && isset($_POST['isNotSelected'])) {

$sql = 'UPDATE ft_form_53 SET status = "pending" WHERE submission_id = ' . $_POST['id'];

// check if the query was executed
if(mysql_query($sql, $link)){
   // everything is Ok, the data was inserted
   print(1);    
} else {
   // error happened
   print(0);
}
}

不会抛出任何错误消息。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

更改

var isNotSel = this.unchecked;

var isNotSel = !isSel;

var isNotSel = !this.checked;

复选框没有unchecked属性。它们有一个布尔checked属性(true如果选中,false如果没有)。你已经把它抓到了isSel,所以......

答案 1 :(得分:0)

搞定了。感谢shehary 点击更改修改,感谢!this.checked 提示T.J. Crowder。我最终使用两个单独的脚本,但它的工作原理:)再次感谢所有!

以下一项是取消选中。

$(document).ready(function() {
$("input[type=checkbox]").change(function() {
    var isNotSel = !this.checked;
     $.ajax({
        url: 'file.php',
        type: 'POST',
        dataType: 'json',
        data: {
            id : this.id,
            isNotSelected : isNotSel

        },
        success: function(data) {
            alert('updated');
        },
        error: function() {
            alert('error');
        }
    });
});
});