在重定向之前回显Javascript警报,usleep(2000000)? - PHP CodeIgniter

时间:2010-10-28 13:02:35

标签: php javascript codeigniter

我正在尝试在数据库交互之后和页面重定向之前(返回同一页面,但显示更新的数据)发出javascript警报。

我认为在使用usleep()重定向之前暂停可能会有效,但它似乎忽略了它。如果我注释掉重定向,它会将我带到控制器页面,警报会弹出。

有什么想法吗?

这是我的代码:

function connect () {
    $client_id = $this->uri->segment(3);
    $related_id = $this->uri->segment(5);
    $related_name = $this->uri->segment(6);

    $uri_segments= $this->session->userdata('segments');
    $uri = base_url()."index.php".$uri_segments;

    if (!$this->uri->segment(4)) {
    $this->load->model('get_clients_model');
    $data['records'] = $this->get_clients_model->getAllClients();
    $this->load->view('clients_all_related',$data);
    }

    elseif ($this->uri->segment(4) == "add") {

        $this->load->model('get_clients_model');
        $data['record'] = $this->get_clients_model->getSingleClient($client_id,$related_id,$related_name);

        echo "<script>javascript:alert('".$data['record']."');</script>";
        usleep(2000000);
        redirect($uri); // send back to previous page with updated related contact

    }
}

相关部分在elseif。

作为旁注,如果有人知道除了警报之外更好的方法来做这个,这只是显示成功/失败消息,那么这也是受欢迎的。

谢谢!

3 个答案:

答案 0 :(得分:4)

我的建议是让Javascript处理重定向而不是PHP。这样,您的PHP脚本不仅可以控制。也许你遇到了一个缓存问题或类似的输出问题。

无论如何,简单。 Javascript输出警报,阻止重定向发生,直到用户确认为止。

echo "<script>javascript:alert('".$data['record']."'); window.location = '".$uri."'</script>";

答案 1 :(得分:1)

你可以尝试一下:

header("refresh:20000000;url=".$uri);

由于redirect()是标题的快捷方式(“location:...”);它应该工作。可能你需要完整的URL而不是/ controller / action。

答案 2 :(得分:0)

:) 男人你必须冲洗();为了你的代码发送。在正常情况下,存储的所有输出然后发送

你的方法是最糟糕的方式!