2012-08-08 82 views
11

嗯,我有一个页面链接到报告。每当有人点击一个报告时,他们可以下载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

重定向第一,通知您重定向到页面需要显示警报。 – kevin628 2012-08-08 17:11:36

回答

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

并摆脱下面的redirect一行。

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

+0

这有一个问题。它只是添加我想要去的当前网址的网址。但它不重定向。我甚至尝试使用整个网址(使用http://),但仍然没有重定向;只是将它添加到当前的url中,并且我陷入了无尽的警报循环中。 – fedejp 2012-08-08 17:36:58

+0

编辑。将'+ ='改为'='。之前我特意加入了当前的网址,因为我以为你想要它。但无论如何,现在应该工作。 – Prasanth 2012-08-08 17:42:51

+0

这是不安全的,禁用javascript会让进一步处理继续。 – Ranhot 2016-02-15 08:27:35

1

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

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

2

结合笨和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路径,这就是为什么它是不需要有。

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

试试这种方式它的工作原理...

首先分配新页面,必须要显示的警告框则显示警告框的窗口。

0

工作,但尝试这种方式。

回声 “ 警报( '没有字段来生成报告');

window.location.href = '管理员/ AHM /面板';

”;

上,然后上面的位置,毗邻

4

使用此代码警报重定向页面

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

这样,它works`

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>"; 
}`