Choix automatique dans une liste

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Choix automatique dans une liste

    Bonjour,
    J'ai besoin qu'une liste affiche un SELECT particulier en fonction du contenu d'un INPUT de type TEXT.

    Dans un formulaire j'ai cette liste, c'est elle qui doit afficher un SELECT en fonction de la valeur numérique (1, 2, 3 , 5, 6, 7 ou 8) contenu dans un INPUT (INPUT id="idcdp" dans mon exemple):

    Code HTML:
    <select id="jform_cdp" name="jform[cdp]" class="inputbox chzn-done" style="display: none;">
        <option value="" selected="selected"></option>
        <option value="1">Pierre Amram</option>
        <option value="2">Alain Boiset</option>
        <option value="3">Sylvain Michel</option>
        <option value="5">Julien Labbe</option>
        <option value="6">Eric test</option>
        <option value="7">cdp-test</option>
        <option value="8">Laetitia</option>
    </select>
    Dans un PHP j'ai:
    Code HTML:
    <?php echo "<br/><br/> ID du CDP : "; ?>
    <input type="text" id="idcdp" value="<?php echo $_POST['CDP']?>"> <!-- ID du CDP -->
    <?php echo "<br/><br/>"; ?>
    
    <!-- ************************************************************ -->
    
    <?php
    echo "<br/><br/> <strong>Le champ 'CDP si différent' doit changer en fonction de la valeur contenu dans 'ID du CDP' <br/>(Valeurs : 1, 2, 3, 5, 6, 7 ou 8)</strong>" ;
    ?>
    
    <?php
    echo "<br/><br/>";
    ?>
    
    <?php
    { // Table CDP
    $bdd = new PDO('mysql:host=SERVEUR;dbname=NOM;charset=utf8', 'USER','MdP');
    }
    $selection = $bdd->query('select * FROM y8a0u_crmform_cdp');
    	$selection->execute();  
    	$x = 0;
    	foreach($selection as $lignedelatable)
    	{
    		$x = $x +1;
    						$tableaudesCDP[$x] = array(
    						"id" =>$lignedelatable["id"],
    						"prenom" =>$lignedelatable["prenom"]
    						);
    	} 
    // Test pour afficher le contenu du tableau (Cela s'affiche correctement)
    print_r($tableaudesCDP); 
    ?>
    
    <script type="text/javascript">
    // Créer la liste déroulante des CDP
    	jQuery('#idcdp').change(function () {
    	var ListeCDPJSON = <?php echo json_encode($tableaudesCDP, JSON_PRETTY_PRINT); ?>;
    	var nbrdelignes = Object.keys(ListeCDPJSON).length;
    	  		      
    	// Vider les INPUT.
    	//jQuery('#jform_cdp').empty(); // Ne vide pas l'INPUT ???, je dois faire ...val(""); Je ne sais pas pourquoi ?
    
    	jQuery('#liste_cdp').val(""); // Obligé de faire cela pour vider l'INPUT !!!
            jQuery('#jform_cdp').val(""); // Obligé de faire cela pour vider l'INPUT !!!
    	   
    	// Faire correspondre l'ID de l'INPUT et l'ID de l'élément du tableau
    	for (x = 1; x <= nbrdelignes; x++) { 
    		if (document.getElementById('idcdp').value == ListeCDPJSON[x]['id']) {
    			
    			// Créer la variable qui affichera le prénom correspondant à l'ID
    			var prenom = ListeCDPJSON[x]['prenom'];
    			var idprenom = ListeCDPJSON[x]['id'];
    			
    			// Afficher les valeurs dans les INPUT
    			
    			jQuery('#jform_cdp').val(idprenom);
    			
    			// INPUTS pour les tests
    			jQuery('#liste_cdp').val(idprenom);
    			jQuery('#nameducdp').val(idprenom);
    			jQuery('#namecdp').val(prenom);
    						
    			}
    		}   
    	})
    	;
    </script>
    <!-- ***************** TESTS *********************** -->
    
    <?php echo "<br/><br/> ID du CDP (en provenance du tableau JSON): "; ?> <input type="text" id="nameducdp">
    <?php echo "<br/><br/> Nom du CDP (en provenance du tableau JSON): "; ?> <input type="text" id="namecdp">
    <?php echo "<br/><br/> "; ?>
    
    <label for='nomdescdp[]'>CDP si différent (Pour TEST) : </label>
    <select id="liste_cdp" name="nomdescdp[]">
        <option value="1">Pierre Amram</option>
        <option value="2">Alain Boiset</option>
        <option value="3">Sylvain Michel</option>
        <option value="5">Julien Labbe</option>
        <option value="6">Eric Test</option>
        <option value="7">cdp-test</option>
        <option value="8">Laetitia</option>
    </select>
    J'ai reproduit la liste pour mes tests.

    Tant mon PHP ne contient que ce code, cela fonctionne très bien.
    Dès que je l'insère dans le PHP qui contient la liste de choix "jform_cdp", cela ne fonctionne plus.
    Même ma liste "test" "liste_cdp" ne change plus.

    Mon JS est bien chargé.
    Quelqu'un a-t-il une idée ?

    Cordialement.
    Eric

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X