Combo <select> dynamique

Résolu/Fermé
Maskk Messages postés 89 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 23 décembre 2010 - Modifié par Maskk le 31/08/2010 à 17:21
Maskk Messages postés 89 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 23 décembre 2010 - 2 sept. 2010 à 08:41
Bonjour,

je cherche a créer une balise <select> ( c'est en php est c'est lié ama base de donnée), qui soit interactive... quand je choisis materiel dans mon select il faudrait qu'il me propose dans un autre select (imprimante, ecran, clavier...) .Je ne maitrise pas completement les scripts auriez vous une solution ? Merci:)
J'ai pas mal passé de temps dessus pourtant ...
https://www.clubic.com/forum/t/javascript-php-liste-deroulante-ect-bdd/183174
https://www.toutjavascript.com/savoir/xmlhttprequest.php3 voila cet exemple est un bon resultat ... cependant je suis trop confus pour le mettre en pratique ...

3 réponses

gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
31 août 2010 à 17:18
L'idée est de déclencher une action sur l'élément onchange() de ton select.
sur le onchange, il faut relancer ton script php avec par exemple une variable materielSeleted contenant l'id du matériel sélectionné
0
Maskk Messages postés 89 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 23 décembre 2010 2
31 août 2010 à 21:07
merci de ton aide gigaga , pourrais tu me donner un exemple simple , ou un lien que je puisse avoir un appercu s'il te plait ?
0
Maskk Messages postés 89 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 23 décembre 2010 2
1 sept. 2010 à 09:39
j'ai tenté de recopier les codes du deuxieme lien linké ca me donne


<SCRIPT language="javascript">
var l1 = f.elements['list1'];
var l2 = f.elements['list2'];
var index = l1.selectedIndex;
if(index < 1)
l2.options.length = 0;
else {
var xhr_object = null;

if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}

xhr_object.open('POST', 'species.php', true);

xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4)
eval(xhr_object.responseText);
}

xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = "family="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2";
xhr_object.send(data);
}
</script>

</head>



<body>
<?php

//Connexion à la BDD

header('Content-type: text/html; charset=iso-8859-1');

INCLUDE ('./authentification/connexion.php');

$query = "SELECT Species FROM Animals WHERE Family = '".$_POST['family']."'";
$query .= " ORDER BY Species";
$result = odbc_do($connexion,$query);

echo 'var o = null;';
echo 'var s = document.forms["'.$_POST['form'].'"].elements["'.$_POST['select'].'"];';
echo 's.options.length = 0;';
while($r = odbc_fetch_array($result))
echo 's.options[s.options.length] = new Option("'.$r['Species'].'");';



odbc_close($result);

?>
Mais rien ne s'affiche ... j'ai oublié un truc enorme je pense mais comme le java est un peu du charabia pour moi c'est bp moins facile...me faudrait il creer un <select> est il deja compris dans ce code?
0
Maskk Messages postés 89 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 23 décembre 2010 2
1 sept. 2010 à 21:20
bon j'ai trouvé la solution entierement php sur un tres bon post , je vous laisserais le lien , avec dans un petit moment une page.php pour connexion a la bdd via ODBC
0
Maskk Messages postés 89 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 23 décembre 2010 2
2 sept. 2010 à 08:41
Bonjour voila le lien en question
https://forum.phpfrance.com/tutoriels/formulaires-listes-deroulantes-dynamiques-liees-t4562.html
Pour bien comprendre j'ai repris le meme exemple des regions , j'ai testé la version entierement php de la personne est c'etait tout bon ...
0