Bonjour,

J'utilise le framework Coldfusion 11 et Bootstrap 3 pour l'aspect Front End.)

Voici mon souci :

Au clic d'un bouton sur ma page principale, une fenêtre de dialogue s'ouvre (plugin jquery-confirm 3) avec un formulaire :

<form action="ajaxSaveUser.cfm" method="post" id="formNewConvention">
...
</form>

Au bas de celui-ci, un bouton "sauver" :
<button type="submit" name="submit" class="btn btn-success pull-right">SAUVER</button>

qui provoque un appel ajax pour la mise à jour de la BDD :

	$("#formModifyUser").submit(function(event){
	    event.preventDefault();  
	    var post_url = $(this).attr("action"); 
	    var request_method = $(this).attr("method"); 
	    var form_data = $(this).serialize();
	    
	    $.ajax({
	        url : post_url,
	        method: 'POST',
	        data : form_data
	    }).done(function(response){
	    	$.alert(response)
	    });
	});	


Mon souci : la sauvegarde se fait correctement dans la BDD mais la fenêtre reste ouverte sur le fichier ajaxSaveUser.cfm et response à l'écran, response étant simplement une ligne de texte

Une idée du pourquoi ?

Merci.
Bonjour,

Je ne suis pas du tout un expert de jquery et ça aurait été plus simple de voir ce qu'il se passe en vrai (lien vers ta page).

J'ai juste une question, est-ce normal qu'il n'y ait pas de ; après $.alert(response) ?

As-tu regardé avec un outil de dév s'il n'y a pas une erreur javascript (comme les outils intégré dans google chrome) ?
Bonjour,

Je ne peux pas mettre de lien vers ma page car je suis en intranet ...
Dans ma page il y a bien un ; à la fin, c'est le copier/coller qui a foiré je pense Smiley smile

Pas d'erreur visible dans l'outil dev de google, l'appel est bien exécuté sans erreur.

Dans la page appelée je fais un update de la BDD et ensuite j'affiche un message de type "Modifications effectuées" et ce message est sensé être récupéré et affiché dans un div de la page appelante.
Je crois que je n'avais pas bien saisi le fonctionnement de ta page.

Ton formulaire te renvoie sur la page ajaxSaveUser.cfm.
A priori c'est donc logique que tu restes sur cette page si cette dernière n'a pas de fonction header() qui te renvoie ailleurs.

Cependant, je ne connais ni coldfusion et quasiment rien sur jquery, alors mon aide sera très limitée :s
Modifié par taspeur (28 Nov 2017 - 15:34)
Coldfusion, asp, php, même combat, ils générent tous de l'html.
En fait ce genre de page fonctionne dans d'autres parties de mes pages, mais là ça coince et j'ignore pourquoi ...

Merci quand même Smiley smile
Bonsoir Deliator,
à priori le event.preventDefault(); fait sont travail correctement : il empêche l'appel de la page ajaxSaveUser.cfm que devrait normalement provoquer l'évènement submit!
La fonction ajax ramène ta réponse dans response que tu utilises dans alert...

En fait je ne comprend pas que tu dises que cela se passe différemment avec le même code sur d'autre parties de ta page?!

Peux-tu en faire une copie et la publiée?

Cordialement,
GJboba
Modifié par GJboba (28 Nov 2017 - 22:32)
Modérateur
Le javascript ne fait rien?

Il agit sur #formModifyUser et le form présenté ici est #formNewConvention.

Du coup c'est juste un submit classique sur ajaxSaveUser.cfm