您好,我一直在遵循一个教程,以帮助我使用Codeigniter中制作的出勤模块。
我有活动,每次活动您都可以参加。
在我的事件查看文件中,我正在加载另一个名为Attenance.php的查看文件。
事件视图文件显示所有事件详细信息,并在底部嵌入出席表格。
“出勤表”会拉出所有已注册的用户,并提供2个单选按钮以标记该用户是否已参加活动。
这是我到目前为止获得的HTML:
\n
我拥有的PHP代码
<section class="content">
<div class="row" >
<div class="col-md-12">
<h3>Event Attendance</h3>
<?php echo form_open() ?>
<div class="table-responsive">
<table class="table table-bordered table-striped dataTable">
<thead>
<tr class="">
<th>Number</th>
<th>User ID</th>
<th>Name</th>
<th>Attendance</th>
</tr>
</thead>
<tbody id="tbody_events">
<?php
$emp = $this->db->query("SELECT * FROM `aauth_users`");
$result = $emp->result();
settype($sl, "integer");
foreach($result as $row):
$sl++;
?>
<tr>
<td><?php echo $sl ?></td>
<td><?php echo $row->id ?>
<input type="hidden" name="emid[]" value="<?php echo $row->id ?>">
</td>
<td><?php echo $row->full_name ?></td>
<td>
<input type="radio" value="1" name="<?php echo $sl?>"> Present
<input type="radio" value="0" name="<?php echo $sl?>"> Absent
</td>
</tr>
<?php endforeach ?>
<tr>
<td colspan="4">
<input type="submit" name="submit" value="Submit Attendance" class="btn btn-success">
</td>
</tr>
</tbody>
</table>
</div>
<?php echo form_close() ?>
</div>
</div>
</section>
问题 我遇到的问题是一切都很好,我可以参加。我看到结果进入数据库了。
每次我提交出勤记录时,都会复制出勤记录。所以目前我有3个用户注册。因此,在出勤表的事件页面下,它在每个表行中显示3个用户。每个按钮都有一个单选按钮,用于说“存在”或“不存在”。我提交表单,在数据库中,我将有6个条目。我只需要为每个用户显示1个条目,每个用户的2个就可以说明出席情况。
任何帮助将不胜感激。
答案 0 :(得分:0)
我弄清楚了为什么我要向数据库添加重复结果。
我有一个出勤查看文件,该文件是我从另一个查看文件中调用的。我的提交功能是在出勤视图中,因为它在出勤视图中(也在辅助视图中),所以它运行了2次,因此将副本提交到数据库中。
感谢弗朗西斯科(Francisco)的帮助。
答案 1 :(得分:-1)
您打开了一个表单,然后将其关闭,将所有输入封装在表中,除了每行相同的Submit按钮。这就是为什么生成重复项的原因,因为当您在一行上单击“提交”时,它将发送表单内的所有输入(来自所有其他行)。
隔离每一行的表单:
<section class="content">
<div class="row" >
<div class="col-md-12">
<h3>Event Attendance</h3>
<div class="table-responsive">
<table class="table table-bordered table-striped dataTable">
<thead>
<tr class="">
<th>Number</th>
<th>User ID</th>
<th>Name</th>
<th>Attendance</th>
</tr>
</thead>
<tbody id="tbody_events">
<?php
$emp = $this->db->query("SELECT * FROM `aauth_users`");
$result = $emp->result();
settype($sl, "integer");
foreach($result as $row):
$sl++;
echo form_open(); // Form opens here for each row
?>
<tr>
<td><?php echo $sl ?></td>
<td><?php echo $row->id ?>
<input type="hidden" name="emid[]" value="<?php echo $row->id ?>">
</td>
<td><?php echo $row->full_name ?></td>
<td>
<input type="radio" value="1" name="<?php echo $sl?>"> Present
<input type="radio" value="0" name="<?php echo $sl?>"> Absent
</td>
</tr>
<tr>
<td colspan="4">
<input type="submit" name="submit" value="Submit Attendance" class="btn btn-success">
</td>
</tr>
echo form_close(); // Form closes here for each row
<?php endforeach ?>
</tbody>
</table>
</div>
</div>
</div>