【问题标题】:saving attendance register records logic with mysql and php用mysql和php保存考勤记录逻辑
【发布时间】:2017-05-04 04:23:05
【问题描述】:

我正在设计一个考勤登记系统,它将显示“选择类别”下拉列表中设置的值中的所有“体操运动员”,并带有自己的复选框(使用 AJAX 和 JSON 显示)。这都是'hunky dory'。

伪形式:

<form>
<classes dropdown populated from classes table onchange="ajaxFunction()">
<save button>
</form>

伪 AJAX 响应:体操运动员的表单元素旁边带有复选框。

GymnastName    [Checkbox]
GymnastName    [Checkbox]
GymnastName    [Checkbox]
GymnastName    [Checkbox]
GymnastName    [Checkbox]
GymnastName    [Checkbox]

然后用户会检查所有在场的体操运动员的方框,并为缺席的体操运动员留下方框。

点击保存按钮后;我不知道如何将每个体操运动员的出席情况保存为课堂出勤表中的单个记录:

上课时间(id,classid,gymnastid,present[y/n],datetime)

我知道这可能不是解决问题的最佳方法,但是有什么方法可以为表单中包含的数据创建一个数组,以便可以在每个体操运动员在场的情况下将其插入到课堂出勤表中保存为记录?

提前感谢您的帮助!

【问题讨论】:

  • 大概你只存储那些在场的人?!?
  • @Strawberry 记录缺席与出席一样重要。所以感谢您的“有用”评论。
  • 谢谢你的讽刺。

标签: javascript php html mysql logic


【解决方案1】:

据我了解,我使用 HTML、Jquery 和 PHP 制作了脚本。查看代码是否适合您。

HTML 和 Jquery 代码

    <form action="process.php"  method="post">

<div>  
GymnastName  <input type="checkbox"  class="atd" ><br>
 <!-- put gymnastid in value what you getting from JSON -->
<input type="hidden" name="Gymnast_id[]" value='1' class="atdid">
<input type="hidden" name="Gymnast_attend[]" value='n' class="atdval">  
</div><br>

<div>
GymnastName  <input type="checkbox"  class="atd"> <br>
<input type="hidden" name="Gymnast_id[]" value='2' class="atdid">
<input type="hidden" name="Gymnast_attend[]"  value='n' class="atdval">  
</div><br>

<div>
GymnastName  <input type="checkbox"  class="atd"> <br>
<input type="hidden" name="Gymnast_id[]" value='3' class="atdid">
<input type="hidden" name="Gymnast_attend[]" value='n'class="atdval">    
</div><br>

<div>
GymnastName  <input type="checkbox"  class="atd"> <br>
<input type="hidden" name="Gymnast_id[]" value='4' class="atdid">   
<input type="hidden" name="Gymnast_attend[]" value='n'class="atdval">    
</div><br>

<div>
GymnastName  <input type="checkbox"  class="atd"><br>
<input type="hidden" name="Gymnast_id[]" value='5' class="atdid">  
<input type="hidden" name="Gymnast_attend[]" value='n' class="atdval">  
</div><br>
  <input type="submit" name="Save">
</form>

<script
              src="https://code.jquery.com/jquery-2.2.4.min.js"
              integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
              crossorigin="anonymous"></script>
<script type="text/javascript">
$(document).ready(function() {
     $('.atd').change(function() {
        if($(this).is(":checked")) {
          $(this).closest('div').find('.atdval').val('y'); 
        }
        else{

            $(this).closest('div').find('.atdval').val('n');
        }        
    });
});

<script>

PHP 代码 (process.php)

<?php
$Gymnast_id=$_POST['Gymnast_id'];
$Gymnast_attend=$_POST['Gymnast_attend'];
foreach ($Gymnast_id as $key => $id) {

echo "Id: ".$id."<br>";
echo "Attend: ".$Gymnast_attend[$key]."<br><hr>";

// here you get id of Gymnast and present status, default it is "n"
// you can add your sql query here
//class-attendance(id, classid, gymnastid, present[y/n],datetime) 
}
?>

【讨论】:

  • 所以你可以将数组作为 postdata 发布?太棒了!
  • 是的,亲爱的:)
猜你喜欢
  • 2014-08-13
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多