Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ma requete Ajax ne se lance q'une seule fois

avec l’événement onchange() sur chaque ligne d'un tableau

Sujet résolu
    5 décembre 2019 à 11:14:39

    Bonjour,

    j'ai un bouton qui crée une ligne à chaque clique.Sur la ligne créée, en changeant de valeur, la requête ajax doit générer des valeurs.

    Mais les données ne s'affichent qu'au changement de valeur sur la première ligne.A la deuxième ligne, pas données.

    J'ai l'impression que la requête Ajax Post ne s’exécute qu'une seule fois.

    Voici le

    Code HTML :

    <table id="tableau">
    <th>Prenom</th>
    <th>Nom</th>
    <th>Situation de famille</th>
    <th>Grade</th>
    <th>Fonction</th>
    <th>Direction</th>
    </table>
    <input type="button" onclick="ajouteLigne('tableau')" value="Ajouter agent"/>
    

    Code JavaScript :

    <script>
            "use strict";
    	var ligne ;	
    var code_HTML_nom;	
    var code_HTML_sitfam;
     
    function ajouteLigne(tableID)
    {
    	var table = document.getElementById(tableID);
    	ligne= table.insertRow(-1);
        var rowNumber = table.childNodes.length;
        var cell_prenom = ligne.insertCell(0);
     
     
     
     
    	    var codeHTML_prenom= '<select id="prenom_ag[]" onchange="charger_champ(this.value)" ><option value="-1">Choisir prenom</option>';
     
     
    		code_HTML_nom='<input id="test"/>';
    		code_HTML_sitfam='<input id="test_sitf"/>';
    	 <?php
    	   include('functions.php');
            $bdd_mission_msas=connect();
    		$reponse_prenom = $bdd_mission_msas->query('SELECT * FROM  agent');
    		 $optionsHTML_prenom="";				
    		while ($donnees_prenom = $reponse_prenom->fetch())
    {
    	$optionsHTML_prenom.='<option value="'.$donnees_prenom ['agent_id'].'">'.$donnees_prenom ['prenom'].'</option>';
    }
     
    $reponse_prenom->closeCursor();
     
    ?>
    codeHTML_prenom+='<?php echo $optionsHTML_prenom ."</select>"; ?>';
    cell_prenom.innerHTML=codeHTML_prenom;
     
     
     
     
    }
     
    function charger_champ(valeur_prenom)
    {
    	var cell_nom = ligne.insertCell(1);
    			  var cell_sitf = ligne.insertCell(2);
                 cell_nom.innerHTML=code_HTML_nom;
    			 cell_sitf.innerHTML=code_HTML_sitfam;
     
    	$.post(
                'recupere_nom.php', // Un script PHP que l'on va créer juste après
                {
                    valeur_prenomsd : valeur_prenom
                    		// Nous récupérons la valeur de nos input que l'on fait passer à connexion.php
     
                },
     
                function(data){
     
     
     
     
     
    			 var words = data.split(',');
    			 		document.getElementById("test").value=words[0];
    			document.getElementById('test').disabled=true;
                 document.getElementById("test_sitf").value=words[1];	
                 document.getElementById('test_sitf').disabled=true;
     
     
     
                },
     
                'text'
             );
     
     
     
     
     
     
     
    }
     
     
            $( window ).load( function(){
     
            });
     
     
        </script>

    code recupere_nom.php

    Code PHP :

    <?php
    	     include('functions.php');
    	     $bdd_mission_msas=connect();
    		 $tab_ag = array();
    		 $valeur_prenom=$_POST['valeur_prenomsd'];
    		 if(( !empty($valeur_prenom)&& ($valeur_prenom!=-1)))
    		 {
     
     
     
    		$reponse_nom = $bdd_mission_msas->query('SELECT nom FROM  agent where agent_id='.$valeur_prenom.'');
     
    		while ($donnees_nom = $reponse_nom->fetch())
    {
    	array_push($tab_ag,$donnees_nom ['nom']);
    }
     
    $reponse_nom->closeCursor();
     
    $reponse_sitf = $bdd_mission_msas->query('SELECT siuationfamille FROM  agent ag,situation_famille sitf where (agent_id='.$valeur_prenom.' and ag.sitfamille_id=sitf.sitfamille_id)');
     
    		while ($donnees_sitf = $reponse_sitf->fetch())
    {
    	array_push($tab_ag,$donnees_sitf ['siuationfamille']);
    }
     
    $reponse_sitf->closeCursor();
     
    		 }
    		 else
    		 {
    			 array_push($tab_ag,"KO");
    		 }
     
    echo implode(',',$tab_ag);
    ?>

    Je sais quel est le problème ?



    • Partager sur Facebook
    • Partager sur Twitter
      5 décembre 2019 à 15:09:21

      Bonjour,

      pourquoi y-a-t-il des bouts de php dans ton code js ??

      • Partager sur Facebook
      • Partager sur Twitter
        5 décembre 2019 à 16:24:18

        Bonjour,

        C'est pour les faire les requêtes en base de données.

        Mais c'est réglé je suis passé par des tableaux []

        Resolu

        • Partager sur Facebook
        • Partager sur Twitter

        Ma requete Ajax ne se lance q'une seule fois

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown