为什么不使用Ajax传递iCheck复选框值

时间:2018-04-17 16:02:46

标签: php html ajax icheck

我在我的网站上使用iCheck复选框插件。我试图将复选框检查/未检查的值从我的html传递到php文件,以便使用Ajax进行数据库更新。 问题是复选框值没有被发送到我的php文件。

html代码:

<input type="checkbox" name="mail_ssl" id="mail_ssl">

Ajax代码和iCheck插件的启动

$(function(){

 $('#mail_ssl').iCheck({
checkboxClass: 'icheckbox_square-blue'
                }); 

$('#mail_ssl').on('ifChecked', function () { 

$.ajax({
type: "POST",
dataType: "json",
data: {mail_ssl : 'yes'},
url: 'mail_settings.php',
success: function(response) {
    alert(response);
        }
    });
  })  

}); // end function

最后是php文件中的代码

$updSettings = "";
$mail_ssl = "";
$customer_id = 1;

$mail_ssl = $_POST['mail_ssl'];
$updSettings = $mail_ssl;

$UpdateMailSettings = "update class_customer_settings set smpt_ssl=" . 
$updSettings . " where customer_id =" .$customer_id;
mysql_query($UpdateMailSettings, $con);

mysql_close($con);

这是我之前写过的代码的重复使用,我认为它可以正常工作,但事实并非如此。我这次不能看到这件事是什么。 任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

我暂时没有使用iCheck,但这是我之前在项目中使用的一些代码,用于测试是否已选中或未选中,返回布尔值。 (替换为您的元素ID)它可能对您有帮助,可能有更好的方法。

 var isCHK = $('#mail_ssl').iCheck('update')[0].checked;
 if(isCHK){
  // iCheck is checked
 }else{
  // iCheck not checked
 }