2016-02-24 55 views
-1

我正在檢查用戶帳戶是否凍結,這是在我的數據庫中,$ r是我獲取用戶數據(名稱,凍結帳戶,等等)。如何檢查複選框的狀態並相應地更新數據庫

因此,如果凍結帳戶設置爲0,那麼我顯示一個未經檢查的框,否則是一個複選框。它工作正常,但是我的問題是我如何保存它,如果我檢查框說,用戶帳戶凍結。

我知道如何編寫查詢,如果他們檢查框說,用戶帳戶凍結,只是調用這個函數:

function updatefreezeaccount(){ 
mysql_query("UPDATE `users` SET `freeze_account` = 1 WHERE `user_id` = '$user_id'"); 
} 

這是我到目前爲止的代碼:

<?php 
     if ($r['freeze_account'] == 0) { 
      echo '<div class="example"> 
      <input type="checkbox" unchecked data-toggle="toggle"> 
      </div>'; 
     } 
     else { 
      echo '<div class="example"> 
      <input type="checkbox" checked data-toggle="toggle"> 
      </div>'; 
     } 
?> 

我沒有表格,所以我想知道我是否可以在沒有表格的情況下做到這一點 但是,我不知道如何進行檢查以查看用戶是否已經檢查了箱子,是否有任何建議不勝感激,謝謝

+0

當你想檢查複選框?提交任何表單或只是通常? –

+0

我不想擁有表格,那麼可能嗎?就像你檢查盒子一樣,它通過調用函數來更新它? –

+0

函數如何調用而不提交?它是一個PHP或Ajax或jQuery? –

回答

1

POST也可用於從服務器獲取一些數據。但是,POST方法從不緩存數據,並且通常用於隨請求一起發送數據。

$(document).ready(function(){ 
    $('input[type="checkbox"]').click(function(){ 
     if($(this).prop("checked") == true){ 
      //here you need to call the page where your update query has 
      var user_id = "<?php echo $user_id;?>"; //if $user id present in the same page 
      $.post("your_page.php", {user_id : user_id}, function(feedback){ 
        alert(feedback);// the feedback is come form the `your_page.php`, what you want to return 
      }); 
     } 
     else if($(this).prop("checked") == false){ 
      alert("Checkbox is unchecked."); 
     } 
    }); 
}); 

您還可以將您的user_id作爲複選框的屬性。

1

您需要使用javascript才能做到這一點。如果你使用的是jQuery,那麼你可以簡單地使用$(selector).on('click', function(){ Call to server side });,或者你可以去香草js並且做一些類似於<button onclick="myFunction()">Click me</button>的事情,並且寫一個js函數來完成服務器端的調用。

1

你想使用JavaScript和框架,如jQuery。這是一個前端問題,而不是後端問題。

所以像這樣的東西會工作。

$('#the-checkbox').click(function() { 
    if ($(this).is(':checked')) { 
     $.post('to-your-form', {client_id: 'client_id', 'freeze':'1'}, function(response) { 
      console.log(response); 
     }); 
    } else { 
     $.post('to-your-form', {client_id: 'client_id', 'freeze':'0'}, function(response) { 
      console.log(response); 
     }); 
    } 
});