2014-02-21 7 views
1

В настоящее время у меня есть код ниже (это сочетание css и html) для переключателей. В конечном итоге пользователь может переключать значение в базе данных на изменение от 0 до 1. Однако я не знаю, как это сделать без кнопки отправки.Обновить значение MySQL с помощью флажка

CSS:

.onoffswitch { 
    position: relative; width: 45px; 
    -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none; 
} 
.onoffswitch-checkbox { 
    display: none; 
} 
.onoffswitch-label { 
    display: block; overflow: hidden; cursor: pointer; 
    border: 2px solid #E3E3E3; border-radius: 10px; 
} 
.onoffswitch-inner { 
    width: 200%; margin-left: -100%; 
    -moz-transition: margin 0.3s ease-in 0s; -webkit-transition: margin 0.3s ease-in 0s; 
    -o-transition: margin 0.3s ease-in 0s; transition: margin 0.3s ease-in 0s; 
} 
.onoffswitch-inner:before, .onoffswitch-inner:after { 
    float: left; width: 50%; height: 15px; padding: 0; line-height: 15px; 
    font-size: 7px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold; 
    -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; 
} 
.onoffswitch-inner:before { 
    content: "ON"; 
    padding-left: 5px; 
    background-color: #5B969C; color: #EEEEEE; 
} 
.onoffswitch-inner:after { 
    content: "OFF"; 
    padding-right: 5px; 
    background-color: #EEEEEE; color: #5B969C; 
    text-align: right; 
} 
.onoffswitch-switch { 
    width: 15px; margin: 0px; 
    background: #FFFFFF; 
    border: 2px solid #E3E3E3; border-radius: 10px; 
    position: absolute; top: 0; bottom: 0; right: 26px; 
    -moz-transition: all 0.3s ease-in 0s; -webkit-transition: all 0.3s ease-in 0s; 
    -o-transition: all 0.3s ease-in 0s; transition: all 0.3s ease-in 0s; 
} 
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { 
    margin-left: 0; 
} 
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { 
    right: 0px; 
} 

HTML:

<div class="onoffswitch"> 
    <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox"  id="onoffswitch6"> 
    <label class="onoffswitch-label" for="onoffswitch6"> 
     <div class="onoffswitch-inner"></div> 
     <div class="onoffswitch-switch"></div> 
    </label> 
</div> 

Edit: после ответа я добавил этот скрипт на страницу и PHP-файл. Однако, он изменяет только 1 в базе данных, но не изменяет его обратно в 0.

Script:

$(document).ready(function(){ 
      $('#onoffswitch6').change(function() { 
       var checked = $(this).is(':checked'); //true or false? 
       $.ajax({ 
        type: "post", 
        url: "encrypt.php", //PHP or whichever other language script that updates your database 
        data: { onOrOff : checked } //access this value in your script via $_POST['onOrOff'], if it's a PHP script 
        }); 
      }); 
     }); 

PHP File:

<?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 value='$onOrOff' WHERE id='$_SESSION[SESS_MEMBER_ID]'"; 
$result = mysql_query($qry) or die("An error occurred ".mysql_error()); 
} 
?> 
+0

Вы можете использовать запрос AJAX в качестве обработчика для OnChange чекбокса, но вы будете иметь, чтобы дать нам еще немного Информация/контекст. – Overv

+0

@Overv Что вам нужно знать? – user3290485

+0

Таким образом, он обновляет столбец «значение», когда флажок установлен, но не обновляется, когда пользователь отключает его? – lucasnadalutti

ответ

1

AJAX является то, что вам нужно. Так как я не так много информации, я буду составлять небольшой пример:

$('.onoffswitch-checkbox').change(function() { 
    var checked = $(this).is(':checked'); //true or false? 
    $.ajax({ 
     type: "post", 
     url: "myscript.php", //PHP or whichever other language script that updates your database 
     data: { onOrOff : checked } //access this value in your script via $_POST['onOrOff'], if it's a PHP script 
    }); 
}); 
+0

Спасибо! Еще один вопрос: что будет $ _POST ['onOrOff'], если он проверен? 1, проверено, ложно? – user3290485

+0

Если это проверено, это будет правдой. И будет ложным в противном случае. – lucasnadalutti

+0

На самом деле я ошибся, извините. Возвращаемое значение будет «проверено», а не верно, если оно проверено. Я отредактирую свой ответ, чтобы сделать его таким, чтобы он возвращал только истину или ложь, поскольку я думаю, что это чище. – lucasnadalutti

Смежные вопросы