16

好吧,我有一个带有报告链接的页面。每当有人点击一份报告时,他们都可以下载 Excel 文件。但是,有时没有字段可以进行报告;在这种情况下,我想显示一条警报消息,在他们点击“接受”后,他们会被重定向到主面板。当他们单击报告时,他们会转到使用 aswitch获取数据的控制器。如果没有数据,模型返回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 文件的页面。但是如果我使用重定向,控制器会将用户移动到主面板而不显示警报。

任何帮助表示赞赏。

提前致谢。

4

7 回答 7

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

并摆脱redirect下面的行。

你把两个不同的世界混在一起了。

于 2012-08-08T17:17:30.783 回答
6

使用此代码重定向页面

echo "<script>alert('There are no fields to generate a report');document.location='admin/ahm/panel'</script>";
于 2016-05-21T04:20:47.930 回答
3

结合 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路径,这就是那里不需要它的原因。

于 2012-08-08T17:57:54.970 回答
1
echo "<script>
window.location.href='admin/ahm/panel';
alert('There are no fields to generate a report');
</script>";

试试这个方法吧...

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

于 2014-02-21T09:06:09.980 回答
1

redirect函数清理输出缓冲区并进行header('Location:...');重定向并退出脚本执行。您尝试回显的部分将永远不会被输出。

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

于 2012-08-08T17:14:37.313 回答
0

这行得通,但试试这种方式。

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

警报在顶部,然后位置在下一个

于 2014-09-19T14:47:45.663 回答
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>";
}`
于 2017-02-24T11:38:38.560 回答