刷新HTML JQUERY PHP后,如何永久禁用提交输入按钮

时间:2020-04-16 22:57:31

标签: javascript php jquery html

实际上,我正在做一个待办任务表,每个任务标题旁边都有一个虚拟的提交表单,只有一个提交输入按钮,单击该按钮时,会使用$ _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>";
         }


}

}

1 个答案:

答案 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属性(或完全跳过提交按钮)。

这种方法比本地存储可靠得多,因为即使用户移动到另一台计算机或使用其他浏览器,该方法也可以使用。