В моей таблице базы данных есть 2 поля: id
(int) и state
(enum -> 0,1).
Мне нужно обновить мою базу данных (мое поле state
) с состоянием checkbox
( 0
для пустого, 1
для отмеченного).
Чтобы показать каждое из полей в моей базе данных, я использую цикл:
Loop:
<?php foreach ( $posts_array as $module ) { ?> <h2><?php echo $module->titre; ?></h2> <input type="checkbox" name="chkbx_<?php echo $module->id; ?>"> id="chkbx_<?php echo $module->id; ?>" class="onoffswitch-checkbox"> On/Off <br /> <?php } ?>
Мой файл обновления:
foreach ($_GET['onoffswitch-checkbox'] as $id => $state) { // $_GET['onoffswitch-checkbox'] = class for all my checkboxed // $id = my database row id // $state = on/off $query = mysql_query("UPDATE records SET id='$id' WHERE state='$state'", $conn) or die (mysql_error($conn)); $id++; }
Где мне нужна помощь, это часть кода AJAX. Я предполагаю, что это выглядит примерно так, но, похоже, это не работает:
AJAX
$(document).ready(function() { $("onoffswitch-checkbox").click(function() { var id = $(this).attr('id'); $("#state_span").load("module_update.php?"+id); } }
Я оглядывался, видел несколько примеров, где мы могли бы сделать это с помощью кнопки отправки, но нигде, где информация автоматически записывается при нажатии на этот флажок.
Попробуй это:
AJAX
$(document).ready(function() { $(".onoffswitch-checkbox").click(function() { var id = this.id; //changed here also, just because jQuery is not needed here var state = this.checked ? 1 : 0; $("#state_span").load("module_update.php?id="+id+"&state="+state); } }
Изменено 3 вещи:
$("onoffswitch-checkbox")
поэтому теперь ее $(".onoffswitch-checkbox")
id=
после module_update.php?
и до значения id
. state
я также добавил, что также с &
для разделения значений $_GET
в php для их разделения PHP
Я не знаю, что вы имеете в виду с $_GET['onoffswitch-checkbox']
в php, может быть, ошибкой? Мое предложение ни в коем случае не нуждается, и ваш запрос mysql не нужен.
Поскольку вы будете щелкать только по одному, я не вижу необходимости в цикле foreach
в php, поэтому вы можете сделать это:
$id = $_GET['id']; $state= $_GET['state']; // $_GET['onoffswitch-checkbox'] ?? I don't think you need this... // $id = my database row id // $state = on/off $query = mysql_query("UPDATE records SET id='$id' WHERE state='$state'", $conn) or die (mysql_error($conn)); $id++;