我一直在互联网上搜索这个问题几天,但我不断碰壁砖墙。
我所拥有的是一个表格,其中包含一个管理区域内的复选框,用作每月“待办事项”列表。它本质上是一个每月要做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个用户/查看者可以看到已经取得了哪些进展。
将db中的数据显示在表中并不是我所做的问题,我只是将db“taskValue”从1更改为0和0到1时出现问题。
答案 0 :(得分:0)
你可以使用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']
。
答案 1 :(得分:0)
试试这个:
<?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>
无论是否选中该复选框,查询都将自动更新数据库。一页,一个检查/取消选中脚本。