2009-06-18 3 views
0

Je suis en train d'utiliser un formulaire pour envoyer une demande ajax prototype à un script php par courrier, puis afficher une fenêtre d'alerte pour le succès et l'échecComment utiliser PHP Ajax.Request onsubmit

Je suis actuellement en utilisant ce code Je ne veux pas que la réponse soit traitée non plus (elle est vide de toute façon)

<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> 

Je veux seulement savoir si cela a réussi ou échoué.

En outre. Je voudrais que le formulaire se dégrade gracieusement quand js est désactivé.

À l'heure actuelle, ce code ne fait rien. Qu'est-ce que je fais mal?

+0

En utilisant le prototype au lieu de jQuery :) –

+0

pourriez-vous poster plus de html? Et qu'est-ce qui se passe actuellement? le formulaire est-il soumis (il ne devrait pas)? –

+0

haha ​​ok alors comment cela se fait-il dans jQuery? Qu'est-ce qui le rend tellement mieux? – stellard

Répondre

1

Si l'événement onsubmit n'est pas géré, votre formulaire n'est pas envoyé.

Avez-vous l'un des éléments suivants dans votre formulaire? Les deux éléments ci-dessus lorsqu'ils sont cliqués (ou activés avec espace/entrée) soumettront le formulaire. le gestionnaire d'événement onsubmit que vous avez devrait alors l'attraper et le retour false devrait arrêter l'action par défaut (changement de page).

De même, votre appel ajax.Request ne semble utiliser aucune des informations de formulaire du formulaire lui-même. Ajax.Request a besoin de savoir quelles informations envoyer.

éditer Vous étiez en train de fermer une parenthèse fermante. utiliser le suivant

<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

Oui j'ai le type = "soumettre" dans le formulaire. (J'ai ajouté plus de html dans la question.) Je vois que je n'ai pas envoyé les valeurs de formulaire. Il semble que je peux utiliser 'parameters: Form.serialize (this) 'La forme ne semble toujours pas du tout se soumettre cependant – stellard

+0

super, merci, c'était le problème – stellard

+0

heureux de vous aider. –

Questions connexes