2013-01-11 52 views
0

檢查過程中試圖開發一種複選框,激活過程基於一個複選框裏我已經發生的問題的價值,我不能讓過去的MySQL查詢,我已經試圖在插入MySQL的查詢,如果選中的複選框/不與PHP

<input type="checkbox" name="status" onclick="updateStatus(<? echo $data['id']; ?>,this.checked)"> 

功能 「updateStatus」 的JavaScript/AJAX代碼爲遵循

function updateStatus(id,value) { 
if (window.XMLHttpRequest) { 
    http = new XMLHttpRequest() 
} else if (window.ActiveXObject) { 
    http = new ActiveXObject("Microsoft.XMLHTTP") 
} else { 
    alert("Your browser does not support XMLHTTP!") 
} 
http.abort(); 
http.open("GET", "../functions/ajax.php?check=update_status&id=" + id + "&checked="+value, true); 
http.onreadystatechange = function() { 
    if (http.readyState == 4) { 
     alert(http.responseText); 
    } 
} 
http.send(null) 

內部函數的PHP函數的瞬間以下/ ajax.php

if(isset($check) and $check == 'update_status' and isset($_GET['id'])){ 
    $id = mysql_real_escape_string($_GET['id']); 
    $checked= mysql_real_escape_string($_GET['checked']); 
if($checked == true) { 
    echo "Checked"; 
} elseif($checked == false) { 
    echo "Not checked"; 
} else { 
    echo "Invalid response"; 
} 

使用此代碼總是返回時,「經過」任何想法,爲什麼?

+0

問題是什麼?的[複選框始終在JavaScript/PHP返回true] –

+0

可能重複(http://stackoverflow.com/questions/14282970/checkbox-always-returning-true-in-javascript-php) –

回答

1

試試這個(測試的代碼),

<input type="checkbox" name="status" onclick="updateStatus(<? echo $data['id']; ?>,this.checked)"> 

您將獲得爲真或假的第二個參數;

function updateStatus(id,checked) { 
if (window.XMLHttpRequest) { 
    http = new XMLHttpRequest() 
} else if (window.ActiveXObject) { 
    http = new ActiveXObject("Microsoft.XMLHTTP") 
} else { 
    alert("Your browser does not support XMLHTTP!") 
} 
http.abort(); 
http.open("GET", "../functions/ajax.php?check=update_status&id=" + id+"checked="+checked, true); 
http.onreadystatechange = function() { 
    if (http.readyState == 4) { 
     alert(http.responseText); 
    } 
} 
http.send(null) 

你的PHP將是:

if(isset($check) and $check == 'update_status' and isset($_GET['id']) AND isset($_GET['checked'])){ 
$id = mysql_real_escape_string($_GET['id']); 
$checked= mysql_real_escape_string($_GET['checked']); 
if($checked == true) { 
$query = mysql_query("SELECT * FROM `check_status` WHERE `user_id` = '$_SESSION[userid]' and `id` = '$id'"); 
else 
//some other query 
//Then i can insert the query based on if the checkbox checked or not. 
+0

他也將需要更新的Javascript函數接受,然後傳遞第二個參數。 – crush

+0

所以我的新代碼將 '函數updateStatus(ID,價值){ \t http.abort(); \t http.open( 「GET」, 「../functions/ajax.php?check=update_status&id=」 + ID + 「&檢查=」 +值,TRUE); \t http.onreadystatechange =函數(){ \t \t如果(http.readyState == 4){ \t \t \t警報(http.responseText); \t \t} \t} \t http.send(空) }' –

+0

@CurtisCrewe:更新我的職務 –