Codeigniter出勤模块循环结果

时间:2019-02-10 16:11:47

标签: php mysql database codeigniter loops

您好,我一直在遵循一个教程,以帮助我使用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个就可以说明出席情况。 my attendance form

任何帮助将不胜感激。

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>

我当前的出勤表格: my attendance form