好吧,我有一个包含报告链接的页面。只要有人点击一个报告,他们就可以下载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文件的页面。但是如果我使用重定向,控制器会将用户移动到主面板而不显示警报。
感谢任何帮助。
提前致谢。
答案 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>";
}`