Page 1 sur 1

Liste Dynamique !!!

Posté : 11 juin 2006, 12:42
par thechakib
Voici un script de deux listes liées, le script fonctionne mais j'arrive pas à récuperer la valeur des listes choisies....... :
<html>
<SCRIPT LANGUAGE="JavaScript">

function ModifierListe(code_ville) 
{
   lg = document.MonFormulaire.ListeVille.length;
   // ON VIDE LA LISTE DES VILLES
   for (i = lg - 1; i >= 0; i--) 
   {
    document.MonFormulaire.ListeVille.options[i] = null;
   }

code_pays = document.MonFormulaire.ListePays.selectedIndex;

<?php
// CONNEXION A LA BASE DE DONNEES

$id_connexion = mysql_connect("localhost","root","");
mysql_select_db("exercice") or die("Could not select database");

$sql = "SELECT code FROM demo_pays ORDER BY code";
$resultat = mysql_query($sql) or die("Query failed"); 

// Génération des Villes par Pays
$max_lignes = 0;
$option_max = '';

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

$sql = "SELECT code, ville FROM demo_ville WHERE code_pays=$enr[0] ORDER BY ville";
$resultat2 = mysql_query($sql) or die("Query failed");

echo " if (document.MonFormulaire.ListePays.options[code_pays].value == ".$enr[0].") {\n";
echo " document.MonFormulaire.ListeVille.length = ".(mysql_num_rows($resultat2)).";\n";

$cpt = 0;

while ($enr2 = mysql_fetch_array($resultat2)) {
echo " document.MonFormulaire.ListeVille.options[".$cpt."].value = ".$enr2[0].";\n";
echo " document.MonFormulaire.ListeVille.options[".$cpt."].text = \"".$enr2[1]."\";\n";
echo " if (code_ville== ".$enr2[0].") document.MonFormulaire.ListeVille.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 DES PAYS
// ----------------------------------------------------------------------------
$sql = "SELECT code, pays FROM demo_pays ORDER BY pays";
$resultat = mysql_query($sql) or die("Query failed");

echo "<FORM METHOD=POST NAME='MonFormulaire' action='".$_SERVER['PHP_SELF']."' >";

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


// LISTE DES VILLES
// ----------------------------------------------------------------------------
echo " <B>VILLE :</B> ";
echo " <SELECT NAME='ListeVille'>\n";
for ($cpt = 0; $cpt < $max_lignes; $cpt++)
echo "<OPTION>".ereg_replace(".", "--", $option_max)."</OPTION>\n";
echo "</SELECT> \n";
if (!isset($ListeVille)) $ListeVille = -1;
echo "<SCRIPT LANGUAGE='JavaScript'>\n;ModifierListe(".$ListeVille.");\n</SCRIPT>\n";
// ----------------------------------------------------------------------------

echo "<br><br>";
echo "<INPUT TYPE='submit' VALUE='Valider'>\n";
echo "</FORM>";
echo "<br><br>";
// ----------------------------------------------------------------------------
// Résultats des sélections
// ----------------------------------------------------------------------------

$sql = "SELECT pays FROM demo_pays WHERE code='".$ListePays."'";
$resultat = mysql_query($sql) or die("Query failed");
$enr = @mysql_fetch_array($resultat);
echo "Pays = $ListePays [$enr[0]]<BR>\n";

if (isset($ListePays) && $ListePays != "") {
$sql = "SELECT pays FROM demo_pays WHERE code='".$ListePays."'";
$resultat = mysql_query($sql) or die("Query failed");
$enr = @mysql_fetch_array($resultat);
echo "Pays = $ListePays [$enr[0]]<BR>\n";
}

if (isset($ListeVille) && $ListeVille != "" && $ListeVille != -1) {
$sql = "SELECT ville FROM demo_ville WHERE code='".$ListeVille."'";
$resultat = mysql_query($sql) or die("Query failed");
$enr = @mysql_fetch_array($resultat);
echo "Ville = $ListeVille [$enr[0]]<BR>\n";
}

?> 
<body>
</body>
</html>

Comment faire pour recuperer les valeurs ????

Merci.

Posté : 11 juin 2006, 13:31
par Cyrano
Voudrais-tu lire ton propre message et me dire si au premier coup d'oeil tu penses qu'on a vraiment envie de lire plus de deux lignes ???

Jette un coup d'oeil aux règles du forum, l'article 4 en particulier :-k

Posté : 11 juin 2006, 13:58
par thechakib
Ya juste un petit probleme pour recuperer la valeur des deux variables, sinon tout est OK.

Tout le code fonctionne bien, le probleme est dans cette partie du code :
 $sql = "SELECT pays FROM demo_pays WHERE code='".$ListePays."'";
$resultat = mysql_query($sql) or die("Query failed");
$enr = @mysql_fetch_array($resultat);
echo "Pays = $ListePays [$enr[0]]<BR>\n";

if (isset($ListePays) && $ListePays != "") {
$sql = "SELECT pays FROM demo_pays WHERE code='".$ListePays."'";
$resultat = mysql_query($sql) or die("Query failed");
$enr = @mysql_fetch_array($resultat);
echo "Pays = $ListePays [$enr[0]]<BR>\n";
}

if (isset($ListeVille) && $ListeVille != "" && $ListeVille != -1) {
$sql = "SELECT ville FROM demo_ville WHERE code='".$ListeVille."'";
$resultat = mysql_query($sql) or die("Query failed");
$enr = @mysql_fetch_array($resultat);
echo "Ville = $ListeVille [$enr[0]]<BR>\n";
}
Merci

Posté : 11 juin 2006, 14:00
par Vaedan
Voudrais-tu lire ton propre message et me dire si au premier coup d'oeil tu penses qu'on a vraiment envie de lire plus de deux lignes ???

Jette un coup d'oeil aux règles du forum, l'article 4 en particulier :-k
As-tu pris la peine de lire son message ? On dirait bien que non !
:arrow: http://www.phpfrance.com/forums/voir_sujet-12542.php

Posté : 13 juin 2006, 09:57
par Invité
Salut,

Est ce que vous pouvez m'orienter vers un exmple concré.


Merci d'avance.

Posté : 13 juin 2006, 10:03
par zeus
modération :
1/ tu n'as pas pris en compte le message d'un modérateur, j'ai du modifié moi-même tes messages
2/ tu es sourd aux remarques
3/ tu n'attends qu'un code et pas d'explication

Dernier avertissement avant que je vérouille le sujet

Posté : 13 juin 2006, 14:01
par thechakib
Le probleme est résolu, voici les modifications à apporter :
if (isset($_POST['ListePays']) && $_POST['ListePays'] != "") {
$sql = "SELECT pays FROM demo_pays WHERE code='".$_POST['ListePays']."'";
$resultat = mysql_query($sql) or die("Query failed");
$enr = @mysql_fetch_array($resultat);
echo $enr[0];
echo "<br />";
}

if (isset($_POST['ListeVille']) && $_POST['ListeVille'] != "") {
$sql = "SELECT ville FROM demo_ville WHERE code='".$_POST['ListeVille']."'";
$resultat = mysql_query($sql) or die("Query failed");
$enr = @mysql_fetch_array($resultat);
echo $enr[0];
}
BYE BYE BYE BYE :D :D :D :D