16

さて、レポートへのリンクがあるページがあります。誰かが1つのレポートをクリックするたびに、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ファイルを生成するはずのページにユーザーを移動します。しかし、リダイレクトを使用すると、コントローラーはアラートを表示せずにユーザーをメインパネルに移動します。

どんな助けでも大歓迎です。

前もって感謝します。

4

7 に答える 7

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

下のredirect行を削除します。

あなたは2つの異なる世界を混同していました。

于 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

このredirect関数は、出力バッファーをクリーンアップしてheader('Location:...');リダイレクトを実行し、スクリプトの実行を終了します。エコーしようとしている部分は出力されません。

ダウンロードページで通知するか、リダイレクト先のページで不足しているデータについて通知する必要があります。

于 2012-08-08T17:14:37.313 に答える
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 に答える
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 に答える