2011-01-12 14 views
0

私はjavascriptでよく分かりません。私は、このチュートリアルに基づいてfaceboxのログインフォームを使用しています:Faceboxログインフォーム私のインデックス全体のページを読み込む

http://freecss.info/css-tutorials/jquery-ajax-contact-form-in-facebox/

エラー処理は正常に動作します。問題=エラーがなければ、私のヘッダ( "location:index.php")がフェイスボックスに読み込まれます。

フェイスボックスを閉じてページを再読み込みするにはどうすればよいですか?あなたはこれらの変更を確認し、成功してたときにリダイレクトするようにエラーを表示する際に制御できるように応答の動作を変更する必要が

+0

フェイスボックスに何をロードしますか? – Kyle

+0

私は検証のログインフォームをロードしています。エラーがなければ、faceboxを閉じて現在のページを更新します。 –

+0

コードしてください??? – Reigel

答えて

1


sendemail.php:

<?php 

/************************ 
* Variables you can change 
*************************/ 

$mailto = "[email protected]"; 
$cc = ""; 
$bcc = ""; 
$subject = "Email subject"; 
$vname = "BrightCherry enquiry"; 


/************************ 
* do not modify anything below unless you know PHP/HTML/XHTML 
*************************/ 


$email = $_POST['email']; 
$resp['error'] = FALSE; // by default there are no errors 

function validateEmail($email) 
{ 
    if(eregi('^[a-zA-Z0-9._-][email protected][a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2,3})?(\.[a-zA-Z]{2,3})?$', $email)) 
     return true; 
    else 
     return false; 
} 


if((strlen($_POST['name']) < 1) || (strlen($email) < 1) || (strlen($_POST['message']) < 1) || validateEmail($email) == FALSE){ 
    $resp['error'] = TRUE; 
    $emailerror .= 'Error:'; 

    if(strlen($_POST['name']) < 1){ 
     $emailerror .= '<li>Enter name</li>'; 
    } 

    if(strlen($email) < 1){ 
     $emailerror .= '<li>Enter email</li>'; 
    } 

    if(validateEmail($email) == FALSE) { 
     $emailerror .= '<li>Enter valid email</li>'; 
    } 

    if(strlen($_POST['message']) < 1){ 
     $emailerror .= '<li>Enter message</li>'; 
    } 
    $err = "<div id='emailerror'><ul>$emailerror</ul></div>"; 
    $resp['error_msg'] = $err; 
} else { 
    $emailerror .= "<span>Your email has been sent successfully!</span>"; 



    // NOW SEND THE ENQUIRY 

    $timestamp = date("F j, Y, g:ia"); 

    $messageproper ="\n\n" . 
     "Name: " . 
     ucwords($_POST['name']) . 
     "\n" . 
     "Email: " . 
     ucwords($email) . 
     "\n" . 
     "Comments: " . 
     $_POST['message'] . 
     "\n" . 
     "\n\n" ; 

     $messageproper = trim(stripslashes($messageproper)); 
     mail($mailto, $subject, $messageproper, "From: \"$vname\" <".$_POST['e_mail'].">\nReply-To: \"".ucwords($_POST['first_name'])."\" <".$_POST['e_mail'].">\nX-Mailer: PHP/" . phpversion()); 

} 
echo json_encode($resp); 
?> 

そして、ご連絡先やインデックスにごajaxForm(あなたがそこにそれを必要とする理由私は知らない):

$('#submitform').ajaxForm({ 
    dataType: 'json', 
    success: function(resp) { 
     if(resp.error) 
      $('#error').html(resp.error_msg).fadeIn('slow'); 
     else 
      window.location = 'index.php'; 
    } 
}); 

私がやったことは以下のとおりである:

  1. 検証フォームとエラーがある場合、エラーフラグを設定json
  2. として結果をエコーし​​、エラーメッセージ、他
  3. は自分の成功の方法で
  4. falseに設定されたエラーフラグを渡しますエラーフラグがtrueに設定されている場合は、エラーを表示します
  5. 他をリダイレクトしてください!
+0

なぜインデックスにもコードが必要なのか分かりません。私はこの問題を解決するために問題を抱えています。送信ボタンがクリックされません。 –

+0

FirebugにJSエラーがありますか? – ifaour

+0

Chrome:「Uncaught SyntaxError:予期せぬトークン(jquery.js:12 –

関連する問題