2010-11-23 7 views
2

arbeite ich dieses Ajax jQuery-Code haben:Rewrite dieses Codes weil serialize() nicht

var form = document.getElementById('frm'); 
      var data_string = form.serialize(); 
      $.ajax({ 
       type:  "POST", 
       url:  "my_php_file.php", 
       data:  data_string, 
       success: function(data) { 

       }//end success function 
      }) //end ajax call 

Dies ist in einer externen Datei namens ajax.js.

Ich schließe ajax.js in eine HTML-Datei namens "show.html". Ich schließe auch jquery.js in show.html ein

Ich habe versucht, die serialize zu arbeiten, aber der Code wird kurz vor dem Ausführen der Serialisierung beendet. Ich habe keine Ahnung warum. Aber ich bin sicher, dass es die Serialisierung ist, die es verursacht.

Ist es möglich, einige einfache Änderungen daran vorzunehmen, so dass es keine Serialisierung verwendet?

Dank

UPDATE:

Dieser Code (ab Antwort unten) scheint auch teilweise zu arbeiten, wenn ich die "Form" Variable aufmerksam machen, erscheint die Meldung "HTML-Formular-Objekt" sagt, so dass es die Form findet . Wenn ich dann die Variable "data_string" alarmiere, sagt die Nachricht "frm = undefined".

Irgendwelche Ideen warum?

var form = document.getElementById('frm'); 
var data_string = $(form).serialize(); 
+0

http://be.twixt.us/jquery/formSubmission.php AjaxSubmit-Plugin tut Ajax Formular Einreichungen. – Gazler

Antwort

7

Die serialize() Methode stammt von jQuery. Ihre Aussage wird scheitern, weil Form nicht in jQuery eingewickelt:

var form = $('#frm'); 
var data_string = form.serialize(); 

Oder:

var form = document.getElementById('frm'); 
var data_string = $(form).serialize(); 
+0

+1, Sie waren zu schnell :-) –

+0

Überprüfen Sie mein Update bitte ... –

+0

@Camran - Ich sehe kein Update ... –

1

Meine Vermutung ist, dass Sie das „traditionelle“ DOM-Objekt sind Referenzierung getElementByID verwenden und ihn nicht durch jQuery (welches das Formular durchlaufen und die Informationen hinzufügen würde). Versuchen Sie mit:

var data_string = $('#frm').serialize(); 
+0

Bitte sehen Sie sich mein Update an –

Verwandte Themen