簡體   English   中英

復選框事件僅在選中時顯示,不在選中時顯示

[英]checkbox event only on check, not on uncheck

我希望我的代碼在選中復選框時將值1放入數據庫中,而在未選中時將值0放入數據庫中。 但是,我當前的代碼僅將行更新為1,而不更新為0。在過去的一個小時里,我一直在努力應對,這實在令人沮喪。

Java腳本

$('#onoffswitch6').change(function() {
    var checked = $(this).is(':checked'); //true or false?
    $.ajax({
        type: "post",
        url: "call.php", 
        data: { onOrOff : checked } 
    });
});

call.php

<?php
//Start session
session_start();

//Include database connection details
require_once('connection.php');

if(isset($_POST['onOrOff']))
{
    if ($_POST['onOrOff'] == false) {
        global $onOrOff;
        $onOrOff = 0;
    } else if ($_POST['onOrOff'] == true) {
        global $onOrOff;
        $onOrOff = 1;
    };

$qry = "UPDATE member SET checkbox='$onOrOff' WHERE id='$_SESSION[SESS_MEMBER_ID]'";
$result = mysql_query($qry) or die("An error occurred ".mysql_error());
}

false應該為'false'

true應該為'true'

Php不會將ajax傳遞的值視為布爾值,但會將$_POST['onOrOff']視為字符串,請運行此代碼,執行類似的操作。

if ($_POST['onOrOff'] == 'false') {
    global $onOrOff;
    $onOrOff = 0;
} else if ($_POST['onOrOff'] == 'true') {
    global $onOrOff;
    $onOrOff = 1;
};

在php中,您正在檢查值是否為true / false,但是輸入的是字符串“ true”或“ false”。 更改為

if ($_POST['onOrOff'] == "false") {...

或類似的東西

$onOrOff = ($_POST['onOrOff'] == "true" ? 1 : 0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM