xabivalencia
Messages postés34Date d'inscriptionjeudi 14 octobre 2004StatutMembreDernière intervention23 juin 2005
-
2 nov. 2004 à 11:51
xabivalencia
Messages postés34Date d'inscriptionjeudi 14 octobre 2004StatutMembreDernière intervention23 juin 2005
-
3 nov. 2004 à 08:51
Bonjour,
Je voudrais creer deux liste deroulante mais liees.
Dans ma base, j ai un champs "nom" et un autre "prenom.
Exemple:
id|nom|prenom
1|momo|toto
2|momo|lolo
3|mumu|tutu
4|mumu|lulu
5|mimi|titi
6|mimi|lili
En effet, la premiere liste fait apparaitre par requete touts les noms de ma base et la segonde, selon le nom selectionne, va laisser apparaitre tous les prenoms qui lui correspondent.
Voila ce que j ai fait, ms ca plante:
<SCRIPT LANGUAGE= "JavaScript">
function ModifierListe(prenom) {
lg = document.frmDemo1.zlprenom.length;
// On vide la liste
for (i = lg - 1; i >= 0; i--) {
document.frmDemo1.zlprenom.options[i] = null;
}
nom = document.frmDemo1.zlnom.selectedIndex;
<?php
// Génération des Prenoms par Noms
$sql = "SELECT DISTINCT nom FROM datos ORDER BY nom";
$resultat = mysql_db_query($Base, $sql);
$max_lignes = 0;
$option_max = '';
while ($enr = mysql_fetch_array($resultat)) {
$sql = "SELECT prenom FROM datos WHERE nom='".$enr[0]."' ORDER BY prenom";
$resultat2 = mysql_db_query($Base, $sql);
// ----------------------------------------------------------------------------
// Liste Nom
// ----------------------------------------------------------------------------
$sql = "SELECT DISTINCT nom FROM datos ORDER BY nom";
$resultat = mysql_db_query($Base, $sql);
echo "<FORM METHOD=POST NAME='frmDemo1'>";
$zlnom=''; // il faut declarer cette variable sinon elle apparait indefinie en local!!
echo "
Nom ";
echo " <SELECT NAME ='zlnom' onChange= 'ModifierListe(-1)'>\n";
while ($enr = mysql_fetch_array($resultat)) {
echo "<OPTION VALUE='".$enr[0]."'";
if ($zlnom == $enr[0]) echo " SELECTED";
echo ">".htmlspecialchars($enr[1])."</OPTION>\n";
}
echo "</SELECT> \n";
// ----------------------------------------------------------------------------
// Liste Prenom
// ----------------------------------------------------------------------------
echo " Prenom ";
echo " <SELECT NAME ='zlprenom'>\n";
for ($cpt = 0; $cpt < $max_lignes; $cpt++)
echo "<OPTION>".ereg_replace(".", "--", $option_max)."</OPTION>\n";
echo "</SELECT> \n";
if (!isset($zlprenom)) $zlprenom = -1;
echo "<SCRIPT LANGUAGE='JavaScript'>\n;ModifierListe(".$zlprenom.");\n</SCRIPT>\n";
// ----------------------------------------------------------------------------
xabivalencia
Messages postés34Date d'inscriptionjeudi 14 octobre 2004StatutMembreDernière intervention23 juin 2005 3 nov. 2004 à 08:51
bonjour,
Voila, j ai reecri mon code mais les select ne se chargent pas....
Je sais que c est un peu gavant de lire un code, sur quand c est pas le notre mais j ai mis bcp de commentaire pour que ca soit plus facil a comprendre....
<?php
// paramètres de connexion
$hostname_smoby = "localhost"; // nom de votre serveur
$Base = "smoby"; // nom de votre base de données
$username_smoby = "root"; // nom d'utilisateur (root par défaut) !!! ATTENTION, en utilisant root, vos visiteurs on tout les droits sur la base
$password_smoby = ""; // mot de passe (aucun par défaut mais il est conseillé d'en mettre un)
$db = mysql_pconnect($hostname_smoby, $username_smoby, $password_smoby)
?>
<SCRIPT LANGUAGE="JavaScript">
function ModifierListe('liste_prenom')
{
//calcul de la longueur de la liste prenom
lg = document.getElementById('liste_prenom').length;
// On vide la liste
for (i = lg - 1; i >= 0; i--)
{
document.getElementById('liste_prenom').options[i] = null;
}
<?php
//----------------------------------
// Génération des prenoms par noms
//-----------------------------------
//-- premiere etape: lister toutes les valeurs du champs nom de la base
$sql = "SELECT DISTINCT nom FROM datos ORDER BY nom";
$resultat = mysql_db_query($Base, $sql);
while ($enr = mysql_fetch_array($resultat))
{
//-- deuxieme etpae: lister tous les prenoms ou le nom est egale a celui
$sql = "SELECT prenom FROM datos WHERE nom='".$enr[0]."' ORDER BY prenom";
$resultat2 = mysql_db_query($Base, $sql);
//-- si le nom selectionnné dans ma liste "nom" est egale a la valeur "nom"enregistree
//-- alors j affiche tous les prenoms correspondants dans ma "liste_prenom"
echo "
if(document.getElementById('liste_nom').options[document.getElementById('liste_nom').selectedIndex].value == ".$enr[0].")";
{
while ($enr2 = mysql_fetch_array($resultat2))
{
$nblignes = mysql_numrows($resultat2);
//nblignes correspond au nombres de valeurs prenoms correspondants au nom selectionné
for ($i=0;$i<$nblignes;$i++)
{ //on insere les prenoms contenu dans notre requete a la liste prenom
echo " document.getElementById('liste_prenom').options[".$i."].value = ".$enr2[".$i."].";\n";
} // fin du for
} // fin du while
}// fin du if
echo " }\n";
} // fin du while
?>
} // fin de la fonction
</SCRIPT>
<?php
// ---------------------
// Liste Nom
// ---------------------
$sql = "SELECT DISTINCT nom FROM datos ORDER BY nom";
$resultat = mysql_db_query($Base, $sql);
echo "<FORM METHOD=POST NAME='liste_nom'>";
echo "
Nom ";
$nom ='';
echo " <SELECT NAME= 'nom' onChange='ModifierListe(-1)'>\n";
while ($enr = mysql_fetch_array($resultat)) {
echo "<OPTION VALUE='".$enr[0]."'";
if ($nom == $enr[0]) echo " SELECTED";
echo "></OPTION>\n";
}
echo "</SELECT> \n";
echo "</FORM>";
// -----------------
// Liste prenom
// -----------------
echo "<FORM METHOD=POST NAME='liste_prenom'>";
echo "
Prenom ";
echo " <SELECT NAME ='prenom'>\n";
for ($cpt = 0; $cpt < $nblignes; $cpt++)
{
echo "<OPTION VALUE='".$enr2[$cpt]."'";
echo "></OPTION>\n";
}
echo "</SELECT> \n";
if (!isset($prenom)) $prenom = -1;
echo "<SCRIPT LANGUAGE='JavaScript'>\n;ModifierListe(".$prenom.");\n</SCRIPT>\n";
// ----------------------------------------------------------------------------
echo "</FORM>";
?>