Bonjour,
Voila mon problème :
J'ai une liste d'abonnement que l'on choisi avec un bouton radio. Et en fonction de l'abonnement choisi on affiche les informations de cet abonnement(Prix, durée ...).
Et je voudrais faire tout cela en AJAX et PHP sous le modèle mvc :
J'ai donc mon modèle avec dedans une fonction qui affiche un formulaire d'abonnement :
Ma vue :
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 function afficheFormAbonnement() { $afficher = ""; $afficher.=' <form name="formAbo" action="index.php?page=abonnement&action=souscrire" method="POST" id="formAbo" onsubmit="formAbonnement();return false;"> <table border id="tabAbo"> <tr> <td id="lignAbo">Abonnement 1 mois<input type="radio" id="proposition" name="proposition" value="1" onclick="infoAbo()" /></td> </tr> <tr> <td id="lignAbo">Abonnement 3 mois<input type="radio" id="proposition" name="proposition" value="2" onclick="infoAbo()" /></td> </tr> <tr> <td id="lignAbo">Abonnement 6 mois<input type="radio" id="proposition" name="proposition" value="3" onclick="infoAbo()" /></td> </tr> <tr> <td id="lignAbo">Abonnement 9 mois<input type="radio" id="proposition" name="proposition" value="4" onclick="infoAbo()" /></td> </tr> <tr> <td id="lignAbo">Abonnement 12 mois<input type="radio" id="proposition" name="proposition" value="5" onclick="infoAbo()" /></td> </tr> </table> <div id="infoAbonnement" align = "right"><br> <div id="detailAbo"> </div> <div id="optionAbonnement" name="optionAbonnement"> <ul> <li>Option 1</li> <li>Option 2</li> <li>Option 3</li> </ul> </div> </div> <div id="moyenPaiement"><br> Moyen de paiement : </br> <table> <tr> <td><img src="images/CB.jpg" height="50" width="50" ALIGN="middle"></td> <td><img src="images/paypal.jpg" height="50" width="50" ALIGN="middle"></td> <td><img src="images/cheque.png" height="50" width="50" ALIGN="middle"></td> </tr> <tr> <td><input type="radio" id="choix" name="choix" value="cartebleue"></td> <td><input type="radio" id="choix" name="choix" value="paypal"></td> <td><input type="radio" id="choix" name="choix" value="cheque"></td> </tr> </table> </br> <input type="button" value="Valider" onclick="formAbonnement()" name="formAbo"/> </form> </div></br></br> '; return $afficher; }
Mon contrôleur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <div id="abonnement"><br> <h2 align="center">ABONNEMENT</h2> <?php echo $abonnement; ?>
Et ma fonction AJAX :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php require_once("modele/m_abonnement.php"); $abonnement = afficheFormAbonnement(); include_once("vue/v_abonnement.php"); <?
Et ça ne fonctionne pas : je ne sais pas pourquoi ...
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
79
80
81
82 function infoAbo() { var xhr = null; if(window.XMLHttpRequest) { // Firefox et autres xhr = new XMLHttpRequest(); } else { if(window.ActiveXObject) {// Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else {// XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } } var requete = ""; requete += "proposition="+document.getElementById('proposition'); if(document.forms["formAbo"].proposition[0].checked || document.forms["formAbo"].proposition[1].checked || document.forms["formAbo"]. proposition[2].checked || document.forms["formAbo"].proposition[3].checked || document.forms["formAbo"].proposition[4].checked) { if(document.forms["formAbo"].proposition[0].checked) { requete += "proposition="+document.forms["formAbo"].proposition[0].value; } else if(document.forms["formAbo"].proposition[1].checked) { requete += "proposition="+document.forms["formAbo"].proposition[1].value; } else if(document.forms["formAbo"].proposition[2].checked) { requete += "proposition="+document.forms["formAbo"].proposition[2].value; } else if(document.forms["formAbo"].proposition[3].checked) { requete += "proposition="+document.forms["formAbo"].proposition[3].value; } else if(document.forms["formAbo"].proposition[4].checked) { requete += "proposition="+document.forms["formAbo"].proposition[4].value; } else { alert("Erreur"); } } xhr.open( 'POST', 'modele/m_abonnement.php', true); xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status == 200) { if(xhr.responseText != "") { document.getElementById('detailAbo').innerHTML = "Ok"; } else { alert(xhr.responseText); } } else { alert(xhr.status); } } }; xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.send(requete); }
Et aussi comment récupérer le choix pour ensuite faire une requête SQL dans mon modèle pour récupérer les infos de l'abonnement
Merci à tous pour votre aide !
<config>Windows 7 / Safari 535.7</config>
Partager