Liste déroulante dynamique PHP/MySQL

DJ Depannage

Habitué
Bonjour la room

Je suis en train de monter une liste déroulante, contenant des valeurs issues de la base sql. Jusqu'ici, c'est du tout bon, les valeurs sont bien indiquées dans la liste déroulante. Maintenant, j'aimerai que si une personne sélectionne DJ_Depannage, que cela l'entraine sur cette fiche. Alors, comment fait-on pour insérer un lien hypertexte dans une liste déroulante ? je n'ai pas trouvé d'exemple de script.
Merci par avance
DJ Depannage
 

Duncan

Grand Maître
Je ne sais pas s'il est possible d'insérer un lien directement dans la liste déroulante.
Mais tu peux le gérer avec l'événement OnChange en Javascript.
 

DJ Depannage

Habitué
Oui en effet, mais je préfère développer une liste issue de donnée de la base sql, car en admettant qu'une personne change un profil, je souhaite que la liste déroulante se remette à jour automatiquement. Avec le Java, je dois retoucher le code manuellement.
Merci pour cette réponse rapide !
 

Duncan

Grand Maître
mais tu peux continuer à charger ta liste dynamiquement comme tu le fais.
Simplement, tu rajoutes du JavaScript et pas du Java.
ca fera un truc du style :

<Input type=combo name=truc_machin javascript: OnChange=allerA()>

et tu tapes ta fonction AllerA qui pourrait accepter en paramètre la valeur renvoyée par ta liste.
Et tu peux rediriger vers la page en fonction de la sélection. Donc tu retouches rien du tout.
 

DJ Depannage

Habitué
Oula ! je suis novice en php... Pourrais tu me donner plus de précision pour insérer cette balise.
Merci ;o)
DJ_Depannage
 

seb corgan

Grand Maître
[citation=3558,1][nom]DJ Depannage a écrit[/nom]Oula ! je suis novice en php... Pourrais tu me donner plus de précision pour insérer cette balise.
Merci ;o)
DJ_Depannage
[/citation]echo "<Input type=combo name=truc_machin javascript.....";
[:le kneu]
 

Luke

Expert
A foutre en haut de page :
[cpp]<script language="JavaScript" type="text/JavaScript">
<!--
function AllerA(targ,selObj,restore){
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>[/cpp]

ton formulaire avec les éléments dynamiques :
[cpp]<form name="form1">
<select name="menu1" onChange="AllerA('parent',this,0)">
<option value="URL1" selected>Element1</option>
<option value="URL2">Element2</option>
</select>
</form>
[/cpp]

Où "URL1 / URL2" et "Element1 / Element2" peuvent être récupéré d'une base de donnée.


Merci Monsieur DreamWeaver ! :merci:
 

gasougasou

Nouveau membre
Bonjour, j'ai créé 1 base de données sur MYSQL comportant les 2 tables suivantes :

code rubrique
1 Langage
2 OS
3 SGBD

code item code_rub
1 PHP 1
2 ASP 1
3 JavaScript 1
4 C++ 1
5 Linux 2
6 Windows 2
7 Mac OS X 2
8 FreeBSD 2
9 Unix 2
10 MySQL 3
11 PostgreSQL 3
12 Oracle 3

et g trouvé sur le net comment faire pour que quand je change de rubrique ma liste d'items change,la il n'y a pas de probleme. en fait la où ca coince c que je veux sauvegarder la rubrique sélectionnée et l'item sélectionné mais je n'y arrive pas si qqn peut m'aider voici le code :

<SCRIPT LANGUAGE="JavaScript">

function ModifierListe(code_item) {

lg = document.frmDemo1.zlItem.length;

// On vide la liste
for (i = lg - 1; i >= 0; i--) {
document.frmDemo1.zlItem.options = null;
}

code_rub = document.frmDemo1.zlRubrique.selectedIndex;

<?php

// Génération des Items par Rubriques
$sql = "SELECT code FROM demo_rubrique ORDER BY code";
$resultat = mysql_db_query($dbName, $sql);

$max_lignes = 0;
$option_max = '';

while ($enr = mysql_fetch_array($resultat)) {

$sql = "SELECT code, item ";
$sql .= "FROM demo_item ";
$sql .= "WHERE code_rub='".$enr[0]."'";
$sql .= "ORDER BY item";
$resultat2 = mysql_db_query($dbName, $sql);

echo " if (document.frmDemo1.zlRubrique.options[code_rub].value == ".$enr[0].") {\n";
echo " document.frmDemo1.zlItem.length = ".(mysql_num_rows($resultat2)).";\n";
$cpt = 0;
while ($enr2 = mysql_fetch_array($resultat2)) {
echo " document.frmDemo1.zlItem.options[".$cpt."].value = ".$enr2[0].";\n";
echo " document.frmDemo1.zlItem.options[".$cpt."].text = \"".$enr2[1]."\";\n";
echo " if (code_item == ".$enr2[0].") document.frmDemo1.zlItem.options[".$cpt."].selected = true;\n";
$cpt++;
if ($cpt > $max_lignes) $max_lignes = $cpt;
if (strlen($enr2[1]) > strlen($option_max)) $option_max = $enr2[1];
}
echo " }\n";
}
?>
}
</SCRIPT>

<?php
// ----------------------------------------------------------------------------
// Liste Rubriques
// ----------------------------------------------------------------------------
$sql = "SELECT code, rubrique FROM demo_rubrique ORDER BY rubrique";
$resultat = mysql_db_query($dbName, $sql);

echo "<FORM METHOD=POST NAME='frmDemo1'>";

echo "<BR> <B>Rubriques</B> ";
echo " <SELECT NAME='zlRubrique' onChange='ModifierListe(-1)'>\n";
if (!isset($zlRubrique)) $zlRubrique = - 1;
while ($enr = mysql_fetch_array($resultat)) {
echo "<OPTION VALUE='".$enr[0]."'";
if ($zlRubrique == $enr[0]) echo " SELECTED";
echo ">".htmlspecialchars($enr[1])."</OPTION>\n";
}
echo "</SELECT> \n";

// ----------------------------------------------------------------------------
// Liste Items
// ----------------------------------------------------------------------------
echo " <B>Items</B> ";
echo " <SELECT NAME='zlItem'>\n";
for ($cpt = 0; $cpt < $max_lignes; $cpt++)
echo "<OPTION>".ereg_replace(".", "--", $option_max)."</OPTION>\n";
echo "</SELECT> \n";
if (!isset($zlItem)) $zlItem = -1;
echo "<SCRIPT LANGUAGE='JavaScript'>\n;ModifierListe(".$zlItem.");\n</SCRIPT>\n";
// ----------------------------------------------------------------------------

echo "<INPUT TYPE='submit' VALUE='Valider'>\n";

echo "</FORM>";

// ----------------------------------------------------------------------------
// Résultats des sélections
// ----------------------------------------------------------------------------
echo "Sélection :<BR>\n";

if (isset($zlRubrique) && $zlRubrique != "") {
$sql = "SELECT rubrique FROM demo_rubrique WHERE code='".$zlRubrique."'";
$resultat = @mysql_db_query($dbName, $sql);
$enr = @mysql_fetch_array($resultat);
echo "Rubrique = $zlRubrique [$enr[0]]<BR>\n";
}

if (isset($zlItem) && $zlItem != "" && $zlItem != -1) {
$sql = "SELECT item FROM demo_item WHERE code='".$zlItem."'";
$resultat = @mysql_db_query($dbName, $sql);
$enr = @mysql_fetch_array($resultat);
echo "Item = $zlItem [$enr[0]]<BR>\n";
}

?>
 

KangOl

Grand Maître
non mais m*rde :o

1/ up de 2 ans inutile
2/ balises
Code:
3/ élague ton code, tout n'est pas util
4/ url pour tester ??
 
G

Guest

Invité
Il y a un tutoriel que j' ai trouve assez bien expliqué sur http://www.codeursolitaire.com/php/listes-deroulantes-dynamiques-liees-avec-php-et-jquery/
 

zeb

Modérateur
8 ans, 4 mois, 8 jours, 22 heures, 38 minutes, 21 secondes !
On tient un champion du déterrage.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 033
Membres
1 586 389
Dernier membre
ROCKET8
Partager cette page
Haut