обновить базу данных с помощью флажка
В моей таблице базы данных есть 2 поля: id (int) и state (enum -> 0,1).
Что мне нужно сделать, так это обновить мою базу данных (мое поле state) с состоянием a checkbox (0 для пустого, 1 для проверенного).
Чтобы показать каждое из полей в моей базе данных, я использую цикл:
Цикл:
<?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);
}
}
Я посмотрел вокруг,увидел несколько примеров, когда мы могли бы сделать это с помощью кнопки submit, но ни одного, где информация автоматически записывается при нажатии флажка.
1 ответ:
Попробуйте вот что:
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++;
Comments