单击“接受”后显示警报消息并重定向

时间:2012-08-08 17:09:54

标签: php codeigniter

好吧,我有一个包含报告链接的页面。只要有人点击一个报告,他们就可以下载excel文件。但是,有时候没有字段可以报告;在这种情况下,我想显示一条警告信息,在他们点击“接受”后,他们会被重定向到主面板。当他们点击报告时,他们会转到使用switch获取数据的控制器。如果没有数据,模型将返回FALSE;所以在控制器的最后,我检查:

if ($result_array != FALSE)
    to_excel($result_array->result_array(), $xls,$campos);
else {
    echo "<script>alert('There are no fields to generate a report');</script>";
    redirect('admin/ahm/panel');
}

如果我摆脱redirect('admin/ahm/panel');,则警报会起作用,但它会将用户移动到应该生成excel文件的页面。但是如果我使用重定向,控制器会将用户移动到主面板而不显示警报。

感谢任何帮助。

提前致谢。

7 个答案:

答案 0 :(得分:46)

echo "<script>
alert('There are no fields to generate a report');
window.location.href='admin/ahm/panel';
</script>";

并摆脱下面的redirect行。

你混淆了两个不同的世界。

答案 1 :(得分:5)

使用此代码重定向页面

echo "<script>alert('There are no fields to generate a report');document.location='admin/ahm/panel'</script>";

答案 2 :(得分:2)

结合CodeIgniter和JavaScript:

//for using the base_url() function
$this->load->helper('url');

echo "<script type='javascript/text'>";
echo "alert('There are no fields to generate a report');"
echo "window.location.href = '" . base_url() . "admin/ahm/panel';"
echo "</script>";

注意: redirect()功能自动包含base_url路径,这就是为什么不需要它。

答案 3 :(得分:1)

redirect函数清除输出缓冲区并执行header('Location:...');重定向并退出脚本执行。你想要回声的部分永远不会被输出。

您应该在下载页面上通知,或者在您重定向到的页面上通知有关丢失的数据。

答案 4 :(得分:0)

echo "<script>
window.location.href='admin/ahm/panel';
alert('There are no fields to generate a report');
</script>";

试试这种方式......

首先为窗口分配必须显示警告框的新页面,然后显示警告框。

答案 5 :(得分:0)

虽然有效,但可以这样试试。

echo "<script>
alert('There are no fields to generate a report');
window.location.href='admin/ahm/panel';  
</script>";

警告在顶部然后位置

答案 6 :(得分:0)

这种方式有效。

   if ($result_array)
    to_excel($result_array->result_array(), $xls,$campos);
else {
    echo "<script>alert('There are no fields to generate a report');</script>";
    echo "<script>redirect('admin/ahm/panel'); </script>";
}`