-1

我有一个 HTML 表单,其中显示学生列表以及 id、用户名等。我需要添加单击该表单中的链接以删除单个学生的功能。在使用 MVC codeIgniter 框架时如何在 PHP 中执行此操作?

我在下面的表单视图中发布了代码,但基本上我正在做的是使用 PHP foreach 循环来遍历我在数据库中的学生列表,在这个循环中,我正在为每个学生创建一个链接显示“删除”,如果单击该按钮,则会将该学生从他/她的班级中删除。

在每个链接中,我都有一个 onclick 方法,该方法将调用包含在我的学生模型类中的 PHP 函数,该函数将实际删除学生。我在这样做时遇到的问题是,由于某种原因,每当页面最初加载时,正在显示的每个学生都会自动被删除。所以我的问题是我如何才能做到这一点,只有被点击的学生被删除,而不是像现在这样删除每个学生。

为了参考我的 MVC 类,我有 user_index.php,这是这个视图表单代码,user_data_model.php 这是我的模型类,然后是 user_controller.php,这是我的学生控制器类。

这是我的视图代码(user_index.php):

<?php foreach ($userList as $user_item): ?>
...

<td>
<a href="" onclick="<?php $user_data_model->remove($user_item['user_name']); ?>">Remove</a>
</td>
<?php endforeach ?>

还有我的模型函数(user_data_model.php):

// remove a student
public function remove($username)
{
    $this->db->where('student_user_name', $username);
    $this->db->update('Student_table', array('student_password' => md5('inactive')));
}

从我的模型代码中可以看出,我只是将学生的密码更改为字符串“inactive”的加密版本,因此我实际上并没有出于测试目的而删除学生。

对此的任何帮助都非常有帮助。谢谢!

4

1 回答 1

1

如果我正确理解这一点,您需要在单击链接时从 HTML 中删除学生记录。如果是这样,那么解决它的方法很少:

1.无需重定向到页面并停留在同一页面上,您需要使用 AJAX,获取该用户的数据,例如ID,并使用 PHP 脚本执行 AJAX,这将从数据库中删除记录。看起来像这样:

$(document).on('click', '.your_link', function() {
   var studentRow = $(this).find('student_row_element');
   var studentIDFromElement = $(this).attr('studentid');
   $.ajax({
      url: '/PATH_TO_YOUR_PHP_SCRIPT',
      data: { studentID : studentIDFromElement, ... },
      success: function(result) {
        if (result) { studentRow.fadeOut(500); }
      }
   });
});

2.另一种方法是在单击链接时将表单提交到您的 php 脚本,从 DB 中删除学生,然后重定向回页面。

于 2013-03-15T15:32:41.617 回答