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):
Dans un PHP j'ai:
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
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>
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>
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