2016-07-13 4 views
0

Ich möchte die Daten des Formulars mithilfe von jQuery sammeln, nachdem es vom Benutzer gesendet wurde. Im Formular sende ich automatisch eine "country_indicator" -Variable an den Server, die angibt, in welcher Sprache der aktuelle Benutzer spricht. Je nachdem, welche Methode gewählt wird, ist die Nationalität des Benutzers unterschiedlich. Aber bevor diese Daten gesendet werden können, habe ich den folgenden Code, um zu überprüfen, ob diese Daten gültige Daten sind.Wie verwende ich eine Anweisung in jQuery PHP, um vom Benutzer gesendete Daten zu sammeln?

Zum Beispiel, wenn die Person Englisch spricht, wird "country_indicator" "en" senden und der Benutzer wird seine Nationalität mit einer Auswahl-Dropdown-Liste wählen; Auf der anderen Seite, wenn die Person vereinfachtes Chinesisch spricht, wird "country_indicator" "hans" sein und der Benutzer wird seine Nationalität einreichen, indem er sie in das Textfeld einbindet, anstatt eines zu wählen.

Mein Code, der alle diese Informationen fangen jQuery sieht unten wie:

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');

ich js und jQuery bin neu, ich weiß nicht, ob ich, wenn verwenden Aussage wie oben, bitte helfen! Danke im Voraus!

+1

Dies ist nicht Server-Code, dies ist Client-Seite Javascript in jquery geschrieben !! – Iceman

+0

Ihr Antwortobjekt ist ebenfalls ungültig. Sie haben eine if/else-Anweisung in Ihrem Objekt, als wäre es eine Eigenschaft. Objekt muss Name/Wert-Paare sein – mwilson

+0

@Iceman verzeihen Sie mir, so naiv zu sein, dieser Code ist eigentlich ein Double-Check-Mechanismus vor dem Senden von Daten an den Server, Sie haben absolut Recht! – DawnZHANG

Antwort

0

Ihr Code ist nicht korrekt formatiert und verursacht wahrscheinlich eine Reihe von Syntaxfehlern. Hier haben wir das richtige Format für das, was Sie zu tun versuchen:

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(); 
    } 
}); 

Jetzt, da für Ihr Problem, wie @Iceman sagte, ist dies nicht serverseitigen Code. Dies ist Ihr clientseitiger Code (JavaScript). Kommentieren Sie die Zeile contact_country: jQuery("#contact_country option:selected").text() und Ihr Objekt sollte korrekt sein und Sie müssen es nur an den Server senden.

+1

response.contact_country: jQuery ("# ​​contact_country"). Val(); Wenn die Anweisung einen Syntaxfehler hat, sollte sie response.contact_country = jQuery ("# ​​contact_country") sein. val(); – DawnZHANG

+0

Entschuldigung. Es war ein schneller Job zum Ausschneiden und Einfügen. Jetzt behoben. – mwilson

Verwandte Themen