[AJAX] Script js ne fonctionne plus lorsque l'appel se fait sous ajax
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
Code:
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);
} |
formulaire (commt_photo_classe_ajax.php)
Code:
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 appel page ajaxCode
Code:
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);
} |