Bonjour ,
Voici mon problème :
J'effectue une requete ajax sur la validation d'un formulaire , en cas de succès j'affiche une alerte javascript.
Cela fonctionne très bien sur FF et google chrome mais pas sur IE.
Voici mon code :
js
fichier verif.php appelé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 $(function() { $(".ajax").submit( function(e) {//on valide le formulaire e.preventDefault(); // on empeche l'envoi du formulaire par le navigateur var datas = $(this).serialize(); $.ajax({ type: 'POST', // envoi des données en POST url: $(this).attr('action'), // envoi au fichier défini dans l'attribut action (vefif.php) data: datas, // sélection des champs à envoyer success: function(data) { // callback en cas de succès if($(data).find('error').length > 0){ alert('error 1'); return; } else if ($(data).find('pseudo').length > 0){ alert('error 2'); return; } else if ($(data).find('credit').length > 0){ alert('error 3'); return; } else if ($(data).find('success').length > 0){ alert('success'); } } }); }); });
J'ai simplifié ici le code php pour la compréhension en enlevant les requetes SQL et quelques traitements
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 <?php header('Content-type: text/html; charset=iso-8859-1'); include("../ressources/fonctions.php"); connexion(); //ici je récupère les variables par methode post //requete sql if ( ($NbCreditUser-$NbCredit) < 0 ) { echo '<response>'; echo "<credit>Impossible ! Il vous reste $NbCreditUser crédits. Veuillez acheter des crédits</credit>"; echo '</response>'; exit(); // On s'arrête là } //requete sql if($resu[0] == NULL) { //Sum<PrixR $Sum=0; $PrixR=10; } else { $SumCredit = $resu[0]; $PrixR = $resu[1]; $Sum = $SumCredit*2; $NbMaxPseudo = $resu[2]; if($Sum >= $PrixR) { echo '<response>'; echo "<error>terminée $Sum $IdProduit</error>"; echo '</response>'; exit(); // On s'arrête là } } //requete SQL $NbEncherePseudo = $res[0]; if(!empty($NbMaxPseudo)) { if($NbEncherePseudo>$NbMaxPseudo) { echo '<response>'; echo "<pseudo>Nombre pour ce pseudo atteint</pseudo>"; echo '</response>'; exit(); // On s'arrête là } } //requete sql echo '<response>'; echo ' <success>Success</success>'; echo '</response>'; ?>
Sur FF ou sur chrome tt marche très bien :
1 je valide le formulaire à l'aide du bouton
2 le fichier php est donc appelé par ajax
3 le traitement s'effectue
4 En fonction du traitement une alerte s'afficheerror 1,2,3 ou success)
Je précise que sur IE le fichier php est bien appelé puisque les traitements en base de données marches. Mais c'est finalement le callback qui ne marche pas.
Merci de votre aide
Partager