Использование флажка для обновления таблицы MySql - PullRequest
0 голосов
/ 04 января 2011

Я искал в интернете несколько дней по этому вопросу, но продолжаю сталкиваться с кирпичной стеной.

То, что у меня есть, это таблица, полная флажков внутри административной области, выступающая в качестве ежемесячного списка дел. По сути, это лист из 30 или около того, что нужно делать каждый месяц, и каждый месяц его нужно проверять и добавлять примечания, если это применимо.

Мне удалось обновить чекбоксы через mysql и показать где-нибудь в виде списка тиков. Я просто сделал это, установив значение 1, и после отправки он обновит таблицу sql.

Я должен прикрыть здесь свои базы, а также предложить возможность снять отметки с предметов, если они были помечены по ошибке. Но я не могу понять, как это делается.

Ниже мой контрольный код ... любая помощь по этому вопросу была бы полезна.

    <?php   
$currentTask = '';
echo "<tr class='tr'>";
while ($seolistRow = mysql_fetch_array($seolistRes)) {
    $taskValue = $seolistRow["taskValue"];
    $worksheetID = $seolistRow["worksheetID"];
    $taskName = $seolistRow["taskName"];
    $taskInfo = $seolistRow["taskInfo"];

    if ($taskValue == 1) {
            $taskDone = "<input type='checkbox' value='1' class='checkbox' name='checkbox".$worksheetID."' id=checkbox'".$worksheetID."' checked='checked' /><div class='taskinfo'>".$taskInfo."</div>";
    }
    else {
            $taskDone = "<input type='checkbox' value='0' class='checkbox' name='checkbox".$worksheetID."' id='checkbox".$worksheetID."' />";
    }
    if ($currentTask != $taskName) {
        echo "</tr>";
        echo "<tr class='tr'>";
        echo "<td class='task'>".$taskName."</td>";
    }
echo "<td class='tick'>".$taskDone."</td>";
$currentTask = $taskName;
}
echo "</tr>";
?>

Редактировать:

Когда я сохраняю его в БД, я использую следующий код:

if (isset($_POST["update"])) {  
$item = $_POST;
    foreach($item as $key => $value) {
        $wsID = str_replace("checkbox","",$key);

        if (is_numeric($wsID)) {
            $updateWSQ = "UPDATE seo_work SET taskValue=$value WHERE worksheetID=$wsID AND userID=$userID";
            mysql_query($updateWSQ) or die(mysql_error());
            header("Location: worksheet.php?userID=$userID&action=success");
        }
    }

}

Я хочу, чтобы я установил флажок и нажал кнопку «Отправить», чтобы сохранить значение в БД как 1. значение и замените его на 0.

это будет отображаться в защищенной области входа в систему для просмотра каждым клиентом. это многопользовательский логин / чекбокс система.

Т.е. 10 человек смогут войти в систему и обновить список дел, а затем 20 пользователей / зрителей смогут увидеть, какой прогресс достигнут.

Получение данных из БД для отображения в таблице - это не проблема, которую я сделал, у меня просто проблема с изменением БД "taskValue" с 1 на 0 и с 0 на 1.

Ответы [ 2 ]

0 голосов
/ 04 января 2011

Попробуйте:

<?php
if ( count($_POST['task']) ) {
  $q = "update task_table set taskValue=0";
  mysql_query($q);

  foreach($_POST['task'] as $k=>$v) {
    $q = "update task_table set taskValue=1 where worksheetID=$k";
    mysql_query($q);
  }
}
?>
<form action="" method="post">
<?php
while ($seolistRow = mysql_fetch_array($seolistRes)) {
  $taskValue = $seolistRow["taskValue"];
  $worksheetID = $seolistRow["worksheetID"];
  $taskName = $seolistRow["taskName"];
  $taskInfo = $seolistRow["taskInfo"];
  echo '<input type="checkbox" name="task['.$worksheetID.']" id="task_'.$worksheetID.'"'.(($taskValue)?' checked="checked"':'').' />';
}
?>
<input type="submit" value="submit" />
</form>

Это дает вам что-то вроде:

<form action="">
<input type="checkbox" name="task[1]" id="task_1" checked="checked" />
<input type="checkbox" name="task[2]" id="task_2" />
<input type="checkbox" name="task[3]" id="task_3" checked="checked" />
<input type="checkbox" name="task[4]" id="task_4" checked="checked" />
<input type="submit" value="submit" />
</form>

Запросы автоматически обновят базу данных независимо от того, установлен флажок или нет.Одна страница, один сценарий проверки / снятия отметки.

0 голосов
/ 04 января 2011

Для этого вы можете использовать jQuery.

<script>
$(document).ready(function() {
    $("input[type=checkbox]").click(function() {
        var isSel = this.checked;
        $.ajax({
            url: 'urlToYourScriptThatExecuteSQL.php',
            type: 'POST',
            dataType: 'json',
            data: {
                id : this.id,
                isSelected : isSel
            },
            success: function(data) {
                alert('nice');
            },
            error: function() {
                alert('error');
            }
        });
    });
});
</script>

Примечание: Ваши urlToYourScriptThatExecuteSQL.php получают $_POST['id'] и $_POST['isSelected'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...