2012-03-17 28 views
2

私はちょうどPHPで始まったばかりで、わかりやすくない単純な問題があります。私は私のサイトの連絡先のページからコンテンツを私に送るという基本的なPHPスクリプトを設定しました。スクリプトそのものは問題ありません。バリデータも同様です。今私が達成しようとしているのは、単純なポップアップ(javascriptの警告関数に似ています)を得ることです。ここに私の試みは、次のとおりです。PHPとJSで "メッセージ送信"確認ポップアップ

if ($valid) { 
     //*isUTF8($subject); 
     //*isUTF8($formcontent); 
     sendMail(); 
     $body = $successMarkup . $backMarkup; 
     $title = "Form sent"; 
     @header("location:formsent.php"); 
    } else { 
     $body = $errorMarkup . $errorMarkupEnd . $backMarkup; 
     $title = "Form errors"; 
    } 

私はここに参照のうえいformsent.phpファイルには、基本的なHTMLマークアップだけでなく、できるだけ早くあなたがページを開くように実行されるJavaScriptのアラートが含まれています

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Contact Success</title> 
</head> 

<body> 
<script language="Javascript"> 
<!-- 
alert ("Thank you for your message! I will come back to you as soon as possible!") 
//--> 
</script> 
</body> 
</html> 

ここで私の質問: 送信ボタンを介して記入済みの連絡先を送信した後、上記のメッセージがポップアップ表示されますが、実際のページが表示され、白い画面しか表示されません。

私はそのページを離れずにそのポップアップメッセージを実装できますか?

+0

私はformsent.phpにアラートが表示された後、新しいページが開かれたことを正しく理解していますか? @header( "location:formsent.php")を呼び出した後、すぐに[exit] [http://php.net/manual/en/function.exit.php]を追加してみてください。 PHPのさらなる実行を妨げます。 –

答えて

1

http://jquery.malsup.com/form/とjQueryを使ってAjaxフォームを簡単に送信できます。 そのページに表示されている例は、あなたのストーリーのタイプを実装するのに十分です。

<script> 
$(document).ready(function(){ 
    $('form#form_id').ajaxForm(
    function(data){ 
     alert(data); 
    } 
    ) 
}) 
</script> 

をだからあなたはあなたのsendmailのスクリプトで行うために必要なすべてが必要なメッセージ、不要リダイレクトをエコーすることです: はちょうど置きます。

+0

ありがとうございました!今すぐ試してみよう... – Severin

0

ヘッダー( "Location:< url>")が適切なリダイレクトになります。ここでAjaxを使用してデータを送信し(ユーザーが送信したとき)、ポップアップ・ボックスの内容を受け取り、それを表示する必要があります。

+0

ajaxを使用せずにこれを行う方法はありませんか? – Severin

+0

さて、別のページにリダイレクトするのではなく、セッション変数を使用してその時のポップアップメッセージを保存し、同じページをもう一度リロードしてください。今、あなたは、そのポップアップボックスを適切に作るために必要なものを持っています。今すぐページの残りの部分とうまく統合することができます。 –

関連する問題