PHPとJavascriptではまる

興味本位で作ってるphpの投稿フォームでちょっとはまる

動きとしては

  1. 送信が完了したらそのむねのメッセージをポップアップ
  2. そのあとトップページに移動
ということをさせたい

 

で、最初に書いたのが下

function alert($str){
$msg = ‘<script type=”text/javascript”>’;
$msg .= “alert(‘$str’)”;
$msg .= ‘</script>’;
echo $msg;
}
alert(“送信完了”);
header(‘Location: top.html’);

 

結果は期待に反して top.htmlにページ移動するだけ

いろいろ調べてると原因判明
つまり、ブラウザからのリクエストに対し、サーバー側でPHPを処理し、その結果をブラウザに返すが、このとき、ブラウザで処理されるjavascriptはまだ実行されていないからPHPのheaderが優先されて、結果としてtopページに移動しただけになるのね

んー、今までもやっとしか理解していないことがよくわかったw
やっぱ、自分で作ってみるといろいろと勉強になるね

とりあえず、直し方はいろいろあるだろうけど

function alert($str){
$msg = ‘<script type=”text/javascript”>’;
$msg .= “alert(‘$str’)”;
$msg .= ‘</script>’;
$msg .= ‘window.location.href = “top.html”;’;
echo $msg;
}

 

こんな感じでTOPページへの移動をjavascriptで処理。うーん、ファンクションに入れちゃうのは美しくない気がする・・・
でも、とりあえず、ポップアップが出てそのあとtopページに戻るようになった

 

プログラマーの人は大変だね

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA