12

この2つの質問は、Javascript関数の下でphpページを呼び出し、アラートの[OK]ボタンが押された後にURLに移動します。アラート ボックスが呼び出された後、index.php にリダイレクトしたいと考えています。私のアラートボックスは私のelseステートメントにあります。以下は私のコードです:

プロセッサー.php

    if (!empty($name) && !empty($email) && !empty($office_id) && !empty($title) && !empty($var_title) && !empty($var_story) && !empty($var_task) && !empty($var_power) && !empty($var_solve) && !empty($var_result)) {

    (some imagecreatefromjpeg code here)

    else{
        echo '<script type="text/javascript">'; 
        echo 'alert("review your answer")'; 
        echo 'window.location= "index.php"';
        echo '</script>';   
    }

何も表示されません(アラートボックスもリダイレクトもありません)。この部分echo 'window.location= "index.php"';を削除すると、アラートが表示されます。まだindex.phpにリダイレクトしていません。これで私を助けてくれることを願っています。参照としてtose投稿を作成したため、重複としてマークしないでください。手伝ってくれてどうもありがとう。

4

7 に答える 7

28

JavaScript 行の後にセミコロンがありません。また、リダイレクトするにwindow.location.hreforなどが必要です。詳細については、この投稿を参照してください。.replace

echo '<script type="text/javascript">'; 
echo 'alert("review your answer");'; 
echo 'window.location.href = "index.php";';
echo '</script>';

わかりやすくするために、このために PHP タグを残してみてください。

?>
<script type="text/javascript">
alert("review your answer");
window.location.href = "index.php";
</script>
<?php

注: 行ごとにセミコロンを使用することはオプションですが、推奨されます。ただし、以下のコメントにあるように、PHP は最初の例では行を改行しませんが、2 番目の例では行を改行するため、最初の例ではセミコロン必要です。

于 2013-11-06T23:49:10.710 に答える
4
if (window.confirm('Really go to another page?'))
{
    alert('message');
    window.location = '/some/url';
}
else
{
    die();
}
于 2013-11-06T23:54:35.133 に答える
3

window.location = mypage.hrefブラウザがコンテンツをダンプして、さらに読み込みを開始するための直接コマンドです。より明確にするために、PHPスクリプトで何が起こっているかを次に示します。

echo '<script type="text/javascript">'; 
echo 'alert("review your answer");'; 
echo 'window.location = "index.php";';
echo '</script>';

1) 現在の Javascript キャッシュへの変更または追加を受け入れる準備をします。2) アラートを表示する 3) ブラウザーのメモリ内のすべてをダンプし、さらに準備を整える (新しい URL をロードする古い方法ではありますが) (さらに、行間に「\n」(改行) インジケーターがないことに注意してください。 JS デコーダーに大混乱を引き起こします。

これを別の方法で行うことをお勧めします..

echo '<script type="text/javascript">\n'; 
echo 'alert("review your answer");\n'; 
echo 'document.location.href = "index.php";\n';
echo '</script>\n';

1) 現在の Javascript キャッシュへの変更または追加を受け入れる準備をします。2) アラートを表示する 3) ブラウザのメモリ内のすべてをダンプし、(以前よりも良い方法で) さらに準備を整える そして、すごい - JS デコーダーが各コマンドが新しい行になっていることを認識できるため、すべてが機能します。

頑張ってください!

于 2013-11-07T00:04:31.920 に答える
2

このように、ページの読み込みが完了する前でも、両方の文が実行されます。

これがエラーです。「;」がありません 変化する:

       echo 'alert("review your answer")'; 
       echo 'window.location= "index.php"';

に:

       echo 'alert("review your answer");';
       echo 'window.location= "index.php";';

次に、提案:何らかのイベントの後にそのロジックをトリガーする必要があります。たとえば、次のようになります。

           document.getElementById("myBtn").onclick=function(){
                 alert("review your answer");
                 window.location= "index.php";
           };

別の提案、jQueryを使用する

于 2013-11-06T23:58:10.097 に答える
-1

phpでの作業例。
最初のアラート、次にリダイレクトが機能します....
お楽しみください...

echo "<script>";
echo " alert('Import has successfully Done.');      
        window.location.href='".site_url('home')."';
      </script>";
于 2014-12-05T07:18:38.333 に答える