实际上,我正在做一个待办任务表,每个任务标题旁边都有一个虚拟的提交表单,只有一个提交输入按钮,单击该按钮时,会使用$ _POST []将数据插入数据库。 ] 方法。我需要的是,提交后,用户必须不能再次提交同一任务,因为每个任务只能由用户执行一次。因此,我需要让用户执行的任务的特定提交按钮才能永久禁用! 在我的方法中,一旦我提交任务,该按钮便被禁用,但是在刷新/重新加载页面后,该按钮被单独启用。不需要什么 有任何帮助吗?
在每个任务旁边创建一个提交按钮的代码(创建了许多带有许多提交按钮的表单,我之间的区别在于它们的ID = {incremental i)和NAME = {task的id,以便通过post方法)):
<?php
$membergroup=$_SESSION['membergroup'];
$sql="select * from taskstable where task_group_name=\"$membergroup\" ";
$result2=mysqli_query($db,$sql);[![enter image description here][1]][1]
$i=0;
while($taskstable=mysqli_fetch_array($result2))
{
$taskPoints=$taskstable['task_points'];
$taskID=$taskstable['task_id'];
print"
<tr>
<td>".$taskstable['task_title']."</td>
<td >".$taskstable['task_description']."</td>
<td style=\"text-align:center;\">".$taskstable['task_points']."</td>
<td>
<form action=$pagename method=\"post\" enctype=\"multipart/form-data\">
<input type=\"submit\" id=\"".$i."\" name =\"$taskID\" class=\"form-control\" value=\"إرسال\" style=\"background-color:#2b3062;width:85%;margin:auto;float:none;color:white;text-align:center;\">
</form>
</td>
</tr>
";
$i++;}
?>
然后,通过post方法检查是否单击了任何提交任务按钮的代码。
$sql5="SELECT * from taskstable where task_group_name='$membergroup' ";
$result5=mysqli_query($db,$sql5);
while($row=mysqli_fetch_array($result5)){
$taskID2=$row['task_id'];
if(isset($_POST[$taskID2])) {
$query = "select * from taskstable where task_group_name='$membergroup' AND task_id='$taskID2'";
$result7 = mysqli_query($db,$query);
$row2=mysqli_fetch_array($result7);
$taskTitle2=$row2['task_title'];
$oneTaskPoint=$row2['task_points'];
$sql6="INSERT into tasksubmitted(member_username,task_title,task_group_name) VALUES('$uname',N'$taskTitle2','$membergroup');";
$result6=mysqli_query($db,$sql6);
if(!$result6)
echo "<script language='JavaScript'>alert('Error in the query!');</script>";
else
{
$memberPoints+=$oneTaskPoint;
$flag=true;
echo"<script language='JavaScript'>$(\"input[name='$taskID']\").prop('disabled',true)</script>";
}
}
}
答案 0 :(得分:0)
您正在保存任务已提交到数据库的事实。因此,现在您需要做的是在PHP中生成页面时查询同一数据库(您的第一个代码段)。并且,如果任务完成,则将disabled="disabled"
属性添加到“提交”按钮。
$title_esc = mysqli_real_escape_string($taskstable['task_title']);
$group_esc = mysqli_real_escape_string($membergroup);
$query = "SELECT * FROM tasksubmitted WHERE task_title=$title_esc AND task_group_name=$group_esc";
(请注意,我不确定要实现的逻辑,因此您可能需要稍微调整一下查询)
运行该查询,如果返回内容,则表示任务已完成,您需要如上所述添加disabled
属性(或完全跳过提交按钮)。
这种方法比本地存储可靠得多,因为即使用户移动到另一台计算机或使用其他浏览器,该方法也可以使用。