IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Script js ne fonctionne plus lorsque l'appel se fait sous ajax


Sujet :

AJAX

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut [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 : 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);
    }
    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
     
     
    //----------------------------------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> &nbsp; &nbsp;   &nbsp; &nbsp; 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 : 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);
    }

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    personne n'a une idée?

    De mon coté j'ai tous essayé du moins je crois.

    Il n'y a que ce script qui ne fonctionne pas, les 2 autres pas de problème.

    Donc, il doit y avoir une une fonction, un code qui est bloqué par la fonction d'appel ajax mais lequel.

    Merci de vous y pencher

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/12/2014, 23h30
  2. Script qui ne fonctionne plus
    Par Zebulon777 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/08/2014, 09h37
  3. Réponses: 23
    Dernier message: 12/08/2012, 12h10
  4. Macro ne fonctionne plus lorsque je la nomme Sub auto_open()
    Par bilou_12 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2012, 16h40
  5. Réponses: 9
    Dernier message: 11/11/2011, 05h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo