美好的一天,我是CodeIgniter的新手,我真的需要一些帮助。我在删除mysql记录时尝试使用jquery发出确认消息(div id =" delmsg")。但只有删除操作有效,但我没有看到任何消息。
Model
页面的代码:
function delete_post($postID)
{
$this->db->where('post_id', $postID);
$this->db->delete('khanposts');
}
Controller
页面的代码:
function deletepost($postID)
{
$this->khanpost->delete_post($postID);
redirect(base_url().'khanposts/index/');
}
View
页面的代码:
<div id="main_body">
if (!isset($posts)){
echo "<p>There are currently no active posts.</p>";
}else{
echo '<table align="center">';
echo '<tr><th>Email Address</th><th>Contact No.</th><th>Actions</th></tr>';
foreach ($posts as $row){
echo '<tr><td><i>' .$row['email']. '</i></td><td><b>' .$row['contact']. '</b></td>
<td><a href="' .base_url(). 'khanposts/deletepost/' .$row['post_id']. '" id="delete"><i>Delete</i></a></td></tr>';
}
echo '</table><br><br>';
echo '<br><br><div id="delmsg"></div>';
}
</div>
<script>
$('#delete').click(function() {
$("#delmsg").css("visibility", "visible");
$('<h3>Record Deleted!</h3>').appendTo('#main_body');
});
//return false;
});
</script>
有没有办法在codeigniter中使用jquery消息?我也可以在codeigniter中手动加载任何jquery插件文件吗?任何帮助将不胜感激。 TNX。
答案 0 :(得分:1)
您可以通过Ajax调用执行此操作,在您从请求中获得成功返回之前不应显示已删除的消息,并且您需要使用jQuery库来执行此操作,Codeigniter本身不会为您提供此信息,因此您必须在您的视图文件中导入jQuery,如下所示:
<script src="//code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
要进行Ajax调用,请添加一个数据属性,该属性将保存该项目的ID并删除href属性,因为如果您不阻止该页面将使您的页面转到该页面,同时ID标记必须是独一无二的,所以把它改成班级:
foreach ($posts as $row){
echo '<tr><td><i>' .$row['email']. '</i></td><td><b>' .$row['contact']. '</b></td>
<td><a data-id="' .$row['post_id']. '" href="#" class="delete"><i>Delete</i></a></td></tr>';
}
然后,像这样进行Ajax调用:
$(".delete").on('click',function(){
$.ajax({
url: "<?php echo site_url('khanposts/deletepost');?>",
type: 'POST',
data: { "post_id": $(this).data("id") },
success: function() {
$("#delmsg").css("visibility", "visible");
$('<h3>Record Deleted!</h3>').appendTo('#main_body');
}
});
});
然后在你的控制器中,获取这样的post值,ajax方法或浏览页面方法可以工作如果我们这样配置:
function deletepost($postID = null, $redirect = true)
{
if($postID == null){
$postID = $this->input->post('post_id');
$redirect = false;
}
$this->khanpost->delete_post($postID);
if($redirect)
redirect(base_url().'khanposts/index/');
}
答案 1 :(得分:1)
您重定向页面,点击链接,在这种情况下,您应该在返回帖子页面时显示删除确认消息:
function deletepost($postID)
{
$this->khanpost->delete_post($postID);
$this->session->set_flashdata('delmsg', 'Record Deleted!'); //this sets a one time accessable flash data
redirect(base_url().'khanposts/index/');
}
现在,要在您的视图中显示此消息:
echo '<br><br><div id="delmsg"><h3>'.$this->session->flashdata('delmsg').'</h3></div>';