2012-02-06 9 views
0

電子メールアドレスなどの登録フォームフィールドを含むhtmlページがあります。登録プロセスには段階があります。最初のステップでは、フォームに電子メールアドレスフィールドがあります。予約プロセスでのIdキャプチャ

ユーザーがメールアドレスを入力して何らかの理由でフォームを離れる場合、15分後のような時間を過ごした後、そのメールアドレスを取得してサーバーに送信します。彼らの中には予約プロセスが途中で残されていたからです。私は彼らが予約プロセスを完了しなかったとしてもそれらを捕捉したい。私はちょうどタイマーか何かを使用してその電子メールアドレスをキャプチャしたい。 onblur()イベントを使用してコードを記述しました。しかし、私はこの問題を解決するためにいくつかの助けが必要です。事前に

おかげで、

+0

..あなたは、サーバー自体にIDを取得後、あなたはIDの有効性を確認することができますが、その最高のクライアントからというよりもさらに有効ではない可能性があるデータでウルサーバーが過負荷に有効なデータを取得し、ものの何を試しましたか? –

+0

"onblur()イベントを使用してコードを記述しました" - そのコードを表示できますか?あなたが修正するのに必要な問題は何ですか?返信いただきありがとうございます。 – David

+0

私はajaxを使用するいくつかのアイデアを持っています。しかし、私は一度彼が電子メールアドレスを入力して、ある程度の時間を修正したい。 proto型のフレームワークで解決策を与えるなら、それは私を大きく助けるでしょう。 – user1049997

答えて

1

あなたは電子メールアドレスを返すのAJAX呼び出しをしたいです。これは完璧ではありませんが、あなたがする必要があることの一般的なアイデアを提供します。

// When the document is loaded do something. 
$(document).ready(function(){ 
    // Do something after 5 minutes (300000 seconds) 
    setTimeout('captureEmail',300000) 
}); 

function captureEmail() 
{ 
    // Serialize the form data and send to captureEmail.php 
    $('#formId').ajax({ 
    url: "captureEmail.php", 
    data: this.serialize(), 
    success: function(){ 
     $(this).addClass("done"); 
    } 
    });  
} 
+0

$( (element.value!= ''){ //時間の関数を実行します。たとえば、15分後に実行します( 'customer_email_address')。いくつかの機能は自動的に15分かかるでしょう。 } }); – user1049997

+0

あなたが – thenetimp

1

これを行うには数多くの方法があります。

ウィザードの最初の手順から2番目の手順に進む場合は、電子メールアドレスをサーバーのテーブルに取り込むことができます。私は電子メールアドレスと登録とタイムスタンプのための一意のIDを持っているテーブルの行に沿って何かをして、テーブルをポーリングして完成した登録テーブルと比較して、これらの電子メールをどこかにストアするサービスを持つことができます。

もう1つのオプションは、ページ終了時またはブラウザアンロード時にテーブルへの挿入を行う更新メソッドを起動するjavascript関数です。

jquery/ajaxを使用すると、電子メールフィールドから離れるときに有効な電子メール形式であることを確認し、そうであれば更新メソッドまたは3つの組み合わせを起動できます。

まず、電子メールアドレスを取得するポイントを決めてから、あなたにどのような仕組みが開いているかを調べる必要があります。すなわち、あるステップから次のステップに進むときのポスト。またはajax/jqueryを使用してページ上のイベントを発生させます。私は答えを「thenetimp」しかし、これらの事

変更します使用したい

+0

$(「customer_email_address」)....代わりの回答であなたを入れてみてください、スパムにあなたとすべての答えを必要としない問題に取り組むための方法がたくさんある。(「ブラー」、機能(イベントを観察します{ element = event.element() if(element.value!= ''){ // 15分後に自動的に関数を実行します。 – user1049997

1

からsetTimeoutは、電子メール、テキストボックスのonkeydownを起動する必要があります - 彼はいくつかのデータは、AJAX呼び出しを行う前にそこにあることを知っているだろうと..

- 正規表現を使用して電子メールの妥当性をチェックすると、最高に​​かかわらず、データが存在するかどうかのすべての5分の後にデータを

呼び出すAJAXを送信したり、入力したデータが完全な電子メールであるかどうかにチェックする前に助言されますIDかどうかは、サーバーに要求をあふれさせるだけではありませんが、最終的には[email protected]と他のもののようなジャンクの値を格納する.. !!

アヤックス