2016-07-01 74 views
0

我需要一個複選框來將MySQL字段從1更新爲0,反之亦然。我想用jQuery/AJAX和PHP來做到這一點,所以我不必重新加載頁面。我將代碼放置在下面,但我無法使其工作。我覺得我非常接近。當使用jQuery,AJAX和PHP單擊複選框時更新MySQL字段

注:我知道mysql_query已棄用。這是一個較舊的項目,我將很快轉換它,但現在需要這個工作。

形式:

if($list_row['online'] == 0) { 
    echo '<input type="checkbox" name="online" id="' . $list_row['id'] . '" data-toggle="toggle" checked>&nbsp;'; 
} else { 
    echo '<input type="checkbox" name="online" id="' . $list_row['id'] . '" data-toggle="toggle">&nbsp;'; 

         } 

jQuery的:

<script> 
$('.online').mousedown(function() { 

    var id = $(this).attr('id'); 

    if($(this).attr('checked')) { 
     var online = 1; 
    } else { 
     var online = 0; 
    } 

    $.ajax({ 
     type:'GET', 
     url:'processes/process_item_online.php?', 
     data:'id= ' + id + '&online='+online 
    }); 

}); 
</script> 

的PHP:

include '../connect.php'; 

// START IF LOGGED IN 
    session_start(); 

if (!isset($_SESSION['is_logged_in'])) { 

    header("location: login.php"); 

} else { 

    $login = true; 

} 


$id = $_GET['id']; 
$online = $_GET['online']; 

mysql_query("UPDATE `store_items` SET online=$online WHERE id='$id'"); 
+1

你看過瀏覽器開發工具中的AJAX請求/響應了嗎?你有沒有在項目中包含jQuery庫?是否有任何錯誤報告?你在網絡服務器上運行這個嗎? –

+0

我有jQuery包含在Apache服務器上運行,Chrome控制檯日誌中沒有錯誤。 –

+0

你看過請求/迴應嗎? –

回答

0

問題通過使用$(document).ready(function() {代碼jquery的之前解決。

+0

你有另一個問題 - SQL注入。這是一個非常嚴重的漏洞 - 您的用戶可以將您的任何'store_items'列重置爲他們選擇的任何值。不要與此一起生活! – halfer

相關問題