-1

私はajaxに取り組んでいます。私が直面している問題は、サーバーからユーザーのajaxを介してデータを取得する2つの機能があることです。受信したデータには、各ユーザーの他のすべてのデータとともに電子メールが含まれています。すべてのユーザーの電子メールは変数に保存され、ユーザー A がいて、彼の電子メールは user@A.com であり、別のユーザー B は user@b.com であり、ユーザー c も同様であり、さらに多くのユーザーがいるとします。以下はコードです

$(response).find(".EMP_EMAIL>span").each(function(i, span) {
    employee_email = $(span).text();

employee_email はグローバル変数であることを忘れないでください

現在、ajax を介した電子メール送信用の 2 番目の関数と、URL に電子メールがパラメータとして含まれています。電子メール送信機能は、ボタンのクリックによって呼び出され、すべてのユーザー レコードに独自のボタンがあります。ユーザーAの下にあるボタンをクリックすると問題が発生するため、URLのパラメーターはuser@A.comである必要があり、ユーザーBのレコードの下のボタンをクリックすると、パラメーターはuser@B.comであり、cでも同じですユーザーが存在する場合など。以下はそのコードです。しかし、私の場合、employee_emailに保存されている最後の電子メールにのみ電子メールを送信します。だから私はそれについての論理を作ることができないので、あなたの助けが必要です. 可能であれば、私が将来そのような状況を理解し、自分で処理できるように、あなたの答えを詳しく説明してください.

function sendEmail(){

if(flag)
{
    request = $.ajax({
        url: "send_email.php?"+employee_email,
        type: "post",
        success: function(data){
            $("#email_responses").html();
        },
        error:function(){
            alert("failure");
            $("#email_responses").html('error occured');
        }
    });
}
else
    alert('Sending email is unavailable currently. PLease try after some time.');
} 

各ユーザーの下に表示されるボタンのコードは次のとおりです。

<div class="send_email_notification">
<input type="submit" value="Send Email" onClick="sendEmail();">
</div>
4

1 に答える 1

0

問題の解決に役立つアドバイス:

1 - グローバル変数の使用を避ける

最初のコードでは、すべてのスパンを繰り返し処理して、グローバル変数の値を設定します。ループの最後に、このグローバル変数には最後の電子メールのみが含まれます。それがおそらくあなたの問題の原因です。

2 - 考えられる解決策の 1 つ

あなたの問題にはさまざまな解決策があります。1 つ: ボタンがクリックされると、クリックされたボタンからの jquery パスを使用して、選択された電子メールを取得します。たとえば、html が次の場合:

<div>
  <span class="email">user@domain.com</span>
  <div class="send_email_notification">
     <input type="submit" value="Send Email" />
  </div>
</div>

JavaScript では、次のクエリを使用して選択したメールを取得できます。

function sendEmail(event) {
   var target = event.currentTarget;
   var email = $(target).parent().parent().find(".email").text();
   // and so on...
 }

 $('.send_email_notification input').on('click', sendEmail);

注: html 要素で onClick 属性を使用することも避ける必要があります。より現代的なアプローチは、javascript を html コードから分離することです。そのため、コードの html バージョンから JavaScript を削除しました。

于 2013-10-31T20:47:43.280 に答える