Liste Dynamique !!!

Eléphanteau du PHP | 12 Messages

11 juin 2006, 12:42

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.

Mammouth du PHP | 19672 Messages

11 juin 2006, 13:31

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 12 Messages

11 juin 2006, 13:58

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

Eléphant du PHP | 493 Messages

11 juin 2006, 14:00

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

Invité
Invité n'ayant pas de compte PHPfrance

13 juin 2006, 09:57

Salut,

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


Merci d'avance.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 juin 2006, 10:03

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 12 Messages

13 juin 2006, 14:01

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