2016-07-13 16 views
0

jQueryを使用してフォームのデータを収集する場合は、ユーザーがそれを送信した後に行います。このフォームでは、現在のユーザーが話している言語を示す "country_indicator"変数をサーバーに自動的に送信します。それに応じて、ユーザーの国籍を選択する方法が異なります。しかし、これらのデータが送信される前に、これらのデータが有効なデータであるかどうかを確認するためのコードがあります。jQuery PHPのif文を使用して、ユーザーから送信されたデータを収集する方法は?

例えば、国語を話す場合、「country_indicator」は「en」を送信し、ユーザーは選択したドロップダウンリストを使用して国籍を選択します。一方、簡体字中国語を話す場合、「country_indicator」は「ハンス」になり、ユーザーは国を選択する代わりにテキストボックスに入力して国籍を提出します。 jQueryのを使用して、これらすべての情報をキャッチします

私のコードは以下のようになります。私があれば使用できる場合

jQuery("#contact_submit").bind("click", function(e) { 
 
\t \t e.preventDefault(); 
 

 
     var response = { 
 
      country_indicator: jQuery("#country_indicator").val(), 
 
      contact_first_name: jQuery("#contact_first_name").val(), \t \t \t // required 
 
      contact_last_name: jQuery("#contact_last_name").val(),    // required 
 

 
      // contact_country: jQuery("#contact_country option:selected").text(),     // required 
 
      contact_company: jQuery("#contact_company").val(),     // required 
 
      contact_email: jQuery("#contact_email").val(), \t \t \t // required 
 
      contact_phone: jQuery("#contact_phone").val(), \t \t \t // optional 
 
      contact_subject: jQuery("#contact_subject").val(), \t \t \t // optional 
 
      contact_message: jQuery("#contact_message").val(), \t \t \t // required 
 
      contact_captcha: jQuery("#contact_captcha").val(), \t \t \t // required 
 
      agreement_checkbox: jQuery("#agreement_checkbox").is(':checked'), // spam if checked 
 
      _action: jQuery("#contactForm").attr('action'), \t // form action URL 
 
      _method: jQuery("#contactForm").attr('method'), \t // form method 
 
      _err: false \t \t \t \t \t \t \t \t // status 
 
     }; 
 

 
      if(response.country_indicator == "hans" || response.country_indicator == "hant") 
 
      { 
 
       contact_country: jQuery("#contact_country").val(), 
 
      } 
 
      else 
 
      { 
 
       contact_country: jQuery("#contact_country option:selected").text(), 
 
      } 
 

 
     jQuery("input, textarea, select").removeClass('err');
私はJSとjQueryに新たなんだ

、私は知りません上記のようなステートメント、助けてください!前もって感謝します!

+1

これはサーバーコードではありません。これはjqueryで書かれたクライアントサイドのJavaScriptです。 – Iceman

+0

あなたの応答オブジェクトも無効です。 if/else文には、オブジェクトのようにオブジェクトがあります。オブジェクトは名前/値のペアでなければなりません – mwilson

+0

@Icemanはとても素朴であることを許していますが、このコードは実際にサーバーにデータを送信する前にダブルチェックのメカニズムです。 – DawnZHANG

答えて

0

あなたのコードは正しくフォーマットされておらず、たぶん多くの構文エラーを投げかけています。ここではあなたが何をしようとしての正しい形式は次のとおりです。

jQuery("#contact_submit").bind("click", function(e) { 
    e.preventDefault(); 

    var response = { 
     country_indicator: jQuery("#country_indicator").val(), 
     contact_first_name: jQuery("#contact_first_name").val(),   // required 
     contact_last_name: jQuery("#contact_last_name").val(),    // required 

     contact_country: jQuery("#contact_country option:selected").text(),     // required 
     contact_company: jQuery("#contact_company").val(),     // required 
     contact_email: jQuery("#contact_email").val(),   // required 
     contact_phone: jQuery("#contact_phone").val(),   // optional 
     contact_subject: jQuery("#contact_subject").val(),   // optional 
     contact_message: jQuery("#contact_message").val(),   // required 
     contact_captcha: jQuery("#contact_captcha").val(),   // required 
     agreement_checkbox: jQuery("#agreement_checkbox").is(':checked'), // spam if checked 
     _action: jQuery("#contactForm").attr('action'), // form action URL 
     _method: jQuery("#contactForm").attr('method'), // form method 
     _err: false        // status 
    }; 

    if(response.country_indicator == "hans" || response.country_indicator == "hant") { 
     response.contact_country = jQuery("#contact_country").text(); 
    } 
    else { 
     response.contact_country = jQuery("#contact_country option:selected").text(); 
    } 
}); 

、@Icemanが言ったように、あなたの問題のように、これは、サーバー側のコードではありません。これはあなたのクライアント側のコードです(javascript)。行contact_country: jQuery("#contact_country option:selected").text()のコメントを外してください。オブジェクトが正しいはずで、サーバーに送信するだけです。

+1

response.contact_country:jQuery( "#contact_country")。val(); in文に構文エラーがある場合は、response.contact_country = jQuery( "#contact_country")とする必要があります。 – DawnZHANG

+0

申し訳ありません。それは素早くカット&ペーストの仕事でした。今修正されました。 – mwilson

関連する問題