在codeigniter中使用jquery显示确认消息

时间:2014-07-09 15:09:17

标签: javascript php jquery mysql codeigniter

美好的一天,我是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。

2 个答案:

答案 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>';