Bonjour,
J'avais un formulaire qui été qui été traité par 3 script en JS
1_ Champs correctement remplie
2_ Nb de lignes
3_ Nb de caractères
Ce formulaire été appelé et validé conventionnellement (php)
Afin d'éviter de lourd chargement de page l'appel et la validation se font par des fonctions ajax (XMLHttpRequest)
Depuis le script 3 qui compte et affiche les caractères restant ne fonctionne plus!!
J'ai cherché je n'arrive pas à trouver.
Merci pour votre aide
Code script 3
formulaire (commt_photo_classe_ajax.php)
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 function LimiterTextArea(nom_controletexte, nb_car, nom_controledecompte) { var moncontroletexte = document.getElementById(nom_controletexte); var moncontroledecompte = document.getElementById(nom_controledecompte); if (moncontroletexte && moncontroledecompte) { moncontroletexte.onclick = function(){TextAreaEstRempli(moncontroletexte, nb_car, moncontroledecompte)}; moncontroletexte.onblur = function(){TextAreaEstRempli(moncontroletexte, nb_car, moncontroledecompte)}; moncontroletexte.onkeyup = function(){TextAreaEstRempli(moncontroletexte, nb_car, moncontroledecompte)}; moncontroletexte.onkeypress = function(){TextAreaEstRempli(moncontroletexte, nb_car, moncontroledecompte)}; // *** Affichage du nombre de caractères restant if(moncontroledecompte.type) moncontroledecompte.value = nb_carRestant(moncontroletexte, nb_car); // Pour un input de formulaire else moncontroledecompte.innerHTML = nb_carRestant(moncontroletexte, nb_car); // Pour un élément HTML } } // TextAreaEstRempli // args : textarea moncontroletexte, int nb_car, element_HTML moncontroledecompte // return : bool // Renvoie vrai si le nombre de caractères maximum du textarea n'est pas atteint function TextAreaEstRempli(moncontroletexte, nb_car, moncontroledecompte) { if (moncontroletexte) { if (moncontroletexte.value.length <= nb_car) { //alert("pas rempli"); // mes actions ... // *** Affichage du nombre de caractères restant if(moncontroledecompte.type) moncontroledecompte.value = nb_carRestant(moncontroletexte, nb_car); else moncontroledecompte.innerHTML = nb_carRestant(moncontroletexte, nb_car); return true; } else { //alert("rempli"); // mes actions ... // Affichage du nombre de caractères restant moncontroletexte.value = moncontroletexte.value.substr(0, nb_car); // *** Affichage du nombre de caractères restant if(moncontroledecompte.type) moncontroledecompte.value = nb_carRestant(moncontroletexte, nb_car); else moncontroledecompte.innerHTML = nb_carRestant(moncontroletexte, nb_car); return false; } } } // nb_carRestant // args : textarea moncontroletexte, int nb_car // return : int // Renvoie le nombre de caractère à saisir function nb_carRestant(moncontroletexte, nb_car) { if (moncontroletexte.value.length) return new Number(nb_car - moncontroletexte.value.length); else return new Number(nb_car); }
Code appel page ajaxCode
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 //----------------------------------Formulaire----------- $div_Code= "div_".$code_photo; $aff_page_html.='<div id="'.$div_Code.'"></div>'; if ($_SESSION['S_auto_com']!=0) { if ($_SESSION['S_prof_ou']!="VV") { if ($_SESSION[$code_photo]!=$code_photo) { $aff_page_html.=' <form method="post" onsubmit="maFonctionAjax(this.Nom.value,this.Commentaire.value,this.Code.value);return false" action=""> <input name="Code" id="Code" type="hidden" value="'. $code_photo.'" > <input name="Nom" id="Nom" type="hidden" value="formulaire" > <table border="0" cellspacing="0"> <tr> <td> </td> <td><b>Il reste <input type="text" size=5 id="controle_decompte"/></b> <a href="javascript:void(0);" class="info_bulle_centre" ><img border="0" src="../img_site/savoir.jpg" alt="" width="17" height="17" /><span> '.$info_com_photo.' </span></a> Ajoutez un commentaire </td> </tr> <tr> <td></td> <td><textarea onKeyDown="return(lilliput( event, this, 5))" id="Commentaire" name="Commentaire" rows="7" cols="75"></textarea></td> </tr> <script language="Javascript" type="text/javascript">LimiterTextArea(\'Commentaire\', 2, \'controle_decompte\');</script> <tr> <td colspan="2"><input type="submit" value="envoyer" /></td> </tr> </table> </form>'; ;}else {$aff_page_html.='<div class="reussi">Vous avez déjà mis une commentaire à cette photo.</div>';} //---------------------------------------------------------------------------- }else {$aff_page_html.='<div class="reussi">'.$invite_com.'</div>';} }else {$aff_page_html.='<div class="erreur">'.$interdit_com.'</div>';}
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 function com_photo(js_code , page) { obj = document.getElementById(js_code, page); document.getElementById(js_code).style.display = "block"; // ON EFFACE LE CONTENU DU DUV obj.innerHTML = ""; if(window.XMLHttpRequest) // FIREFOX xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // IE xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else return(false); // CONTROLE DE LETAT DE LA REQUETE // CHAQUE CHANGEMENT DETAT AFFICHE UNE LIGNE DANS NOTRE DIV xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) { // ON CONTROLE LE STATUS (ERREUR 404, ETC) if(xhr_object.status == 200) obj.innerHTML += xhr_object.responseText; else obj.innerHTML +="Error code " + xhr_object.status; } }; //alert(page); // ON APPELLE LA PAGE xhr_object.open("GET", "commt_photo_classe_ajax.php?saut="+js_code+"&start="+page, true); xhr_object.send(null); }
Partager