【问题标题】:Display alert message and redirect after click on accept单击接受后显示警报消息并重定向
【发布时间】:2012-08-08 17:09:54
【问题描述】:

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

感谢任何帮助。

提前致谢。

【问题讨论】:

  • 先重定向,通知您重定向到的页面需要显示警报。

标签: php codeigniter


【解决方案1】:
echo "<script>
alert('There are no fields to generate a report');
window.location.href='admin/ahm/panel';
</script>";

并去掉下面的redirect 行。

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

【讨论】:

  • 这个有问题。它只是将我想要访问的 url 添加到当前 url。但它不会重定向。我什至尝试使用整个 url(带有 http://),但它仍然没有重定向;只需将其添加到当前网址,我就会陷入无休止的警报循环。
  • 已编辑。将+= 更改为=。早些时候我特别添加到当前网址,因为我认为你想要它。但无论如何,现在应该可以工作了。
  • 这不安全,禁用 javascript 会让进一步处理继续进行。
  • 什么是“window.location.href='admin/ahm/panel';”?
【解决方案2】:

使用此代码重定向页面

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

【讨论】:

  • 这行得通.....
【解决方案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 路径,这就是那里不需要它的原因。

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:
      echo "<script>
      window.location.href='admin/ahm/panel';
      alert('There are no fields to generate a report');
      </script>";
      

      试试这个方法吧……

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

      【讨论】:

        【解决方案6】:

        这样就可以了`

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

        【讨论】:

          【解决方案7】:

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-01-17
            • 2023-02-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多