Je dois réaliser le déroulement en ajax de plusieurs pages pour obtenir une execution plus fluide. Pour ce faire voici ma function javascript
Je teste bien sur quel navigateur je me situe puisqu'avant j'ai eu des soucis en utlisant un petit framework. Je déclare ma balise <div> afin d'afficher les données dans cette partie de la page.
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 <script type='text/JavaScript'> /** * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest */ function sendData(data, page, method) { if(document.all) { //Internet Explorer var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ; }//fin if else { //Mozilla var XhrObj = new XMLHttpRequest(); }//fin else //définition de l'endroit d'affichage: var content = document.getElementById("zone_avis"); //si on envoie par la méthode GET: if(method == "GET") { if(data == 'null') { //Ouverture du fichier sélectionné: XhrObj.open("GET", page, true); }//fin if else { //Ouverture du fichier en methode GET XhrObj.open("GET", page+"?"+data, true); }//fin else }//fin if else if(method == "POST") { //Ouverture du fichier en methode POST XhrObj.open("POST", page); }//fin elseif //Ok pour la page cible XhrObj.onreadystatechange = function() { if (XhrObj.readyState == 4 && XhrObj.status == 200) content.innerHTML = XhrObj.responseText ; } if(method == "GET") { XhrObj.send(null); }//fin if else if(method == "POST") { XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); XhrObj.send(data); }//fin elseif }//fin fonction SendData </script>
L'execution se déroule correctement suivant si l'utilisateur est loggué ou pas. Prenons le cas ou l'utilisateur est loggué.
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 <p> <div id="zone_avis"><!-- c\'est ici que les données récupérées vont apparaître -->'; if (!tep_session_is_registered('customer_id')) { echo " <a href=\"javascript:sendData('null','Zlogin.php?products_id=".$products_id. "', 'GET')\">".TEXT_WRITE_REVIEW."</a>.<br>".TEXT_WRITE_REVIEW2." <a href='service_concours.php'>" .TEXT_WRITE_REVIEW3." </a>)"; } else { echo " <a href=\"javascript:sendData('null','Zform.php', 'GET')\">".TEXT_WRITE_REVIEW5."</a>.<br>" .TEXT_WRITE_REVIEW4."<a href='service_concours.php'>" .TEXT_WRITE_REVIEW3."</a>)"; } echo ' </div> <p>
Ma page Zlogin.php s'affiche correctement, mais cependant il y a un petit soucis puisque avant de transmettre les données du formulaire (vérifier si l'utilisateur a bien rempli le formulaire), la 1ère que l'utilisateur saisit, ma function ne s'execute pas (pas d'affichage d'alert), mais en revenant une deuxième fois à l'endroit du formulaire, la fonction s'execute correctement cela n'est pas un soucis de navigateur puisque cela se produit aussi bien sur firefox que sur IE.
voici le code de Zlogin.php:
voici le code de ma function de vérification:
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 echo "<form name='reviews' method='post'>"; echo "<table border='0' width='100%' cellspacing='0' cellpadding='0'> <tr> <td class='main'>" .tep_draw_textarea_field('review', 'soft', 67, 10). "</td> </tr> <tr> <td class='smallText' align='right'>" . TEXT_NO_HTML . "</td> </tr> <tr> <td class='main'><b>" . SUB_TITLE_RATING . "</b> " . TEXT_BAD . " <input type='radio' value='1' id='radio1' name='note'> <input type='radio' value='2' id='radio2' name='note'> <input type='radio' value='3' id='radio3' name='note'> <input type='radio' value='4' id='radio4' name='note'> <input type='radio' value='5' id='radio5' name='note'> " . TEXT_GOOD . "</td> </tr> </table></form> "; echo "<br> <a href=\"javascript:sendData('null','Zajout.php?products_id=".$products_id."&rating='+getValRadio(document.reviews.note)+'&review='+document.reviews.review.value, 'GET')\" onClick=\" return verif_form();\">Valider</a> <a href=\"javascript:sendData('null','Zaccueil.php?products_id=".$products_id."', 'GET')\">Annuler</a> "; }
Je débute en Ajax, donc je demande votre aide car j'ai un peu de mal
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 function verif_form() { var error = false; var message = 'Le formulaire n\'est pas valide, vous devez saisir : \n'; if(document.reviews.review.value.length < <?php echo $size; ?>) { error = true; message = message + '* le champ commentaire (30 cartères minimum) \n'; } if ((!document.getElementById('radio1').checked) && (!document.getElementById('radio2').checked) && (!document.getElementById('radio3').checked) && (!document.getElementById('radio4').checked) && (!document.getElementById('radio5').checked)){ error = true; message = message + '* le champ note \n'; } if (error == true){ window.alert(message); return false; } else{ return true; } }. Je vous remercie d'avance.
Partager