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

vbkedwbf  于 2022-12-07  发布在  其他
关注(0)|答案(7)|浏览(168)

我有一个链接到报告的页面。每当有人点击一个报告,他们可以下载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文件的页面。但是如果我使用重定向,控制器会把用户移动到主面板,而不显示警报。

uqcuzwp8

uqcuzwp81#

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

并去掉下面redirect行。
你把两个世界搞混了。

rmbxnbpk

rmbxnbpk2#

使用此代码重定向页面

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

ahy6op9u3#

结合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路径,这就是此处不需要它得原因.

9vw9lbht

9vw9lbht4#

函数的作用是:清除输出缓冲区,执行header('Location:...');重定向并退出脚本执行。您试图回显的部分将永远不会被输出。
您应该在下载页面或重定向到的页面上通知缺少的数据。

ncgqoxb0

ncgqoxb05#

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

试试这个方法...
首先为窗口指定必须显示警告框的新页面,然后显示警告框。

s71maibg

s71maibg6#

这样就行了

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

dm7nw8vv7#

但你可以这样试试。

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

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

相关问题