2009-06-18 5 views
0

Ich versuche, ein Formular zu verwenden, verwenden, um einen Prototyp Ajax-Request an einen PHP-Skript per Post schicken und dann für Erfolg und MisserfolgWie PHP Ajax.Request onsubmit

Ich bin derzeit eine Warnmeldung angezeigt werden mit diesem Code

<div id="reservationRequestForm"> 
    <form name="requestReservationForm" method="post" onsubmit="new Ajax.Request('admin/process/process_reservation_request.php', {onSuccess: function() {alert('Success');} , onFailure: function() {alert('Failure');}, method:'post'}; return false;"> 

.... 

    <input type="submit" class="buttonGreen" value="Send Request" onClick="hideDiv('reservationRequestForm');"/> 
    </form> 
</div> 

ich will nicht die Antwort verarbeitet entweder werden (es ist leer sowieso). Ich möchte nur wissen, ob es erfolgreich war oder gescheitert ist.

Zusätzlich. Ich möchte, dass das Formular ordnungsgemäß abbaut, wenn js deaktiviert ist.

Gerade jetzt tut dieser Code nichts. Was mache ich falsch?

+0

Verwenden von Prototyp anstelle von jQuery :) –

+0

könnten Sie mehr von der HTML? Und was passiert gerade? Ist das Formular überhaupt einreichen (sollte es nicht)? –

+0

haha ​​ok dann, wie ist es in jQuery getan? Was macht es so viel besser? – stellard

Antwort

1

Wenn das onsubmit-Ereignis nicht bearbeitet wird, wird Ihr Formular nicht übermittelt.

Haben Sie eine der folgenden Angaben in Ihrem Formular?

Die beiden obigen Elemente beim Klicken (oder aktiviert mit Leerzeichen/Enter) senden das Formular. Der Onsubmit-Ereignishandler, den Sie haben, sollte ihn dann abfangen, und der Rückgabewert false sollte die Standardaktion anhalten (Seite wechseln).

Auch Ihr Ajax.Request Aufruf scheint tatsächlich keine der Formularinformationen aus dem Formular selbst zu verwenden. Ajax.Request muss wissen, welche Informationen gesendet werden sollen.

bearbeiten Sie wurden minssing eine Schließ Klammern. Verwenden Sie die folgenden

<form name="requestReservationForm" method="post" onsubmit="new Ajax.Request('admin/process/process_reservation_request.php', {onSuccess: function() {alert('Success');} , onFailure: function() {alert('Failure');}, method:'post', parameters:Form.serialize(this) }); return false;"> 
+0

Ja, ich habe den Typ = "submit 'im Formular. (Ich habe mehr HTML in der Frage hinzugefügt.) Ich sehe, dass ich die Formularwerte nicht gesendet habe. Es scheint, ich kann Parameter verwenden: Form.serialize (this) "Das Formular scheint sich aber immer noch nicht zu senden. – stellard

+0

Toll, danke. Das war das Problem – stellard

+0

glücklich zu helfen. Froh, es hat alles geklappt." –

Verwandte Themen