我有一个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”的加密版本,因此我实际上并没有将学生移除以进行测试。
对此有任何帮助都非常有帮助。谢谢!
答案 0 :(得分: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脚本,从而将学生从数据库中删除,然后重定向回页面。