Besoin d'aide pour faire fonctionnez ce code

chardene_amour_de_freddy Messages postés 71 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 3 août 2005 - 14 juin 2005 à 18:22
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 - 22 juin 2005 à 00:02
Bonjour !

J'ai un pb assez urgent; en fait j'ai 2 listes déroulantes, la 1ère qui contient les pays doit modifier la 2ème qui conferme les villes . Et la 2ème doit changer en fonction du choix fait dans la 1ère.

Voici le code que j'ai mais apparement il ne fait rein :
<? 
// Connexion &#224; la base 
include ("connexion_eurocall.php");
//$id = MYSQL_CONNECT($host,$user,$pass);
mysql_select_db("$bdd"); 


?> 

 
<FORM name="essai dinamisme liste" ACTION="" METHOD="POST"> 
<FIELDSET STYLE ="background-color: #FFCC99"> 
<legend class="LEGEND">Update Form</legend>
 


<LABEL>Pays :</LABEL>
 


<select name="pays" class="SELECT" onChange="javascript :document.formation.submit()"> 
<option value="">Choisit le pays</option> 
<!-- Valeur vide pour forcer l'utilisateur &#224; s&#233;lectionner --> 
<? 
// Connexion &#224; la Base de donn&#233;es
include ("connexion_eurocall.php");
$id = MYSQL_CONNECT($host,$user,$pass);
mysql_select_db("$bdd"); 


$resultat=@mysql_query("SELECT * FROM pays ORDER BY code_pays"); 
while ($rang=mysql_fetch_array($resultat)){ 
$intitule_pays=$rang['intitule_pays']; 
$code_pays=$rang['code_pays']; 


If(! empty($pays) AND $intitule_pays == $pays){ 
echo"<option selected>".$pays."</option>"; 
}else{ 
echo "<option value="".$code_pays."">".$intitule_pays."</option>\n"; 
} 
}
 //D&#233;connexion
 mysql_close();
?> 
</select> 



 
<LABEL>Ville</LABEL> 

 
<select name="ville" class="SELECT" onChange="javascript :document.formation.submit()"> 
<option value="">Choisit la ville</option> 
<!-- Valeur vide pour forcer l'utilisateur &#224; s&#233;lectionner --> 
<? 
// Connexion &#224; la Base de donn&#233;es
include ("connexion_eurocall.php");
$id = MYSQL_CONNECT($host,$user,$pass);
mysql_select_db("$bdd"); 


$resultat=@mysql_query("SELECT * FROM ville ORDER BY code_ville"); 
while ($rang=mysql_fetch_array($resultat)){ 
$intitule_ville=$rang['intitule_ville']; 
$code_ville=$rang['code_ville']; 


If(! empty($ville) AND $intitule_ville == $ville){ 
echo"<option selected>".$ville."</option>"; 
}else{ 
echo "<option value="".$code_ville."">".$intitule_ville."</option>\n"; 
} 
}
 //D&#233;connexion
 mysql_close();
?> 
</select> 

 

 

 
 

 

 
</FIELDSET> 
</FORM> 



Merci d'avance à tte personne qui pourront m'aider

13 réponses

Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
14 juin 2005 à 22:34
a mon avis, ta variable $pays doit contenir le code_pays et pas l'intitule_pays. donc il faut que tu remplace

If(! empty($pays) AND $intitule_pays == $pays){

par
If(! empty($pays) AND $code_pays == $pays){

et pareil pour la ville



En plus,

tu te connect 3 fois a ta base alors qu'une seule suffirait,

tu na pas de "action" dans ton form

tu peu mettre juste "submit();" dans ton onChange !!!
0
chardene_amour_de_freddy Messages postés 71 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 3 août 2005
15 juin 2005 à 11:01
Bien, je m'y met de ce pas et merci pour tes subgestions
0
chardene_amour_de_freddy Messages postés 71 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 3 août 2005
15 juin 2005 à 11:27
Je viens de faire les modifications que tu m'a subgéré, slmt çà ne donne rien de rien .
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
15 juin 2005 à 12:10
dans ce cas la, essaye de mettre un echo :

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

$intitule_pays=$rang['intitule_pays'];

$code_pays=$rang['code_pays'];

echo "$pays = $intitule_pays(intitule) ou $code_pays(code)";

If(! empty($pays) AND $intitule_pays == $pays){

echo"<option selected>".$pays."</option>";

}else{

echo "<option value="".$code_pays."">".$intitule_pays."</option>\n";

}

}



comme ca tu vera si a un moment ton $pays vaut $intitule ou $code
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chardene_amour_de_freddy Messages postés 71 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 3 août 2005
16 juin 2005 à 10:32
Ben, çà ne donne tjrs rien, dans la liste déroulante ds pays j'ai ts les pays de ma BD, hors dans la liste déroulate des villes je n'ai rien malgré le nombre de sélection que je peux faire .


Merci pour une autre astuce
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
16 juin 2005 à 14:17
et tu veu ke tes villes dependent du pays? si oui, alors ta requete est pas bonne car tu filtre pas les villes selon les pays.

mais ds tous les cas, tu devrai avoir quelque chose, vu que ton code est exactement le meme pour les pays et les villes!!!

tu es sur que ta requete retourne des resultats?
0
chardene_amour_de_freddy Messages postés 71 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 3 août 2005
16 juin 2005 à 17:04
Je trouves dans les listes les valeurs de mes tables.
Est ce que tu ne pourrais me dire ce que je peux faire? Pcq là je suis vraiment out.

Merci d'avance
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
16 juin 2005 à 20:35
moi j'aurai ecris ca comme ca. ca peut peut etre venir du fait que tu include 2 fois ton fichier "connexion_eurocall.php"



<?

// Connexion à la base

include ("connexion_eurocall.php");

$id = MYSQL_CONNECT($host,$user,$pass);

mysql_select_db("$bdd");

?>




<FORM name="essai dinamisme liste" ACTION="cette_page.php" METHOD="POST">

<FIELDSET STYLE ="background-color: #FFCC99">

<legend class="LEGEND">Update Form</legend>


<LABEL>Pays :</LABEL>


<select name="pays" class="SELECT" onChange="javascript :document.formation.submit()">

<option value="">Choisit le pays</option>

<!-- Valeur vide pour forcer l'utilisateur à sélectionner -->

<?

[mailto:$resultat=@mysql_query%28%22SELECT $resultat=@mysql_query("SELECT] * FROM pays ORDER BY code_pays");

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

$intitule_pays=$rang['intitule_pays'];

$code_pays=$rang['code_pays'];

If((! empty($pays)) && ($intitule_pays == $pays)){

echo"<option selected>".$pays."</option>";

}else{

echo "<option value="".$code_pays."">".$intitule_pays."</option>\n";

}

}

?>

</select>




<LABEL>Ville</LABEL>




<select name="ville" class="SELECT" onChange="javascript :document.formation.submit()">

<option value="">Choisit la ville</option>

<!-- Valeur vide pour forcer l'utilisateur à sélectionner -->

<?

[mailto:$resultat=@mysql_query%28%22SELECT $resultat=@mysql_query("SELECT] * FROM ville ORDER BY code_ville");

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

$intitule_ville=$rang['intitule_ville'];

$code_ville=$rang['code_ville'];

If((! empty($ville)) && ($intitule_ville == $ville)){

echo"<option selected>".$ville."</option>";

}else{

echo "<option value="".$code_ville."">".$intitule_ville."</option>\n";

}

}

//Déconnexion

mysql_close();

?>

</select>













</FIELDSET>

</FORM>
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
16 juin 2005 à 21:55
je viens de tester chez moi, ca marche tres bien!!!

la seule difference c que j'ai postgresql donc j'ai remplace "mysql_*"
par "pg_*" et j'ai enleve le include, et les class des objets.
0
chardene_amour_de_freddy Messages postés 71 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 3 août 2005
17 juin 2005 à 11:14
A quoi il sert le postgresql ? Tu peux me dire?


Ben, je viesn de modifier comme tu me l'as subgéré et la liste des villes à disparut et ensuite plus rien dans la liste déroulante des pays!
J'ai fait un copier coller du code que t'a modifier et ensuite j'ai enlever les class ainsi que le 2ème include, ensuite j'ai remplacer mysql_ par pg_


Voici le code


<?
// Connexion à la base
include ("connexion_eurocall.php");
$id = MYSQL_CONNECT($host,$user,$pass);
mysql_select_db("$bdd");
?>


<FORM name="essai dinamisme liste" ACTION="cette_page.php" METHOD="POST">
<FIELDSET STYLE ="background-color: #FFCC99">
<legend class="LEGEND">Update Form</legend>

<LABEL>Pays :</LABEL>

<select name="pays" onChange="javascript :document.formation.submit()">
<option value="">Choisit le pays</option>
<!-- Valeur vide pour forcer l'utilisateur à sélectionner -->
<?
$resultat=@pg_query("SELECT * FROM pays ORDER BY code_pays");
while ($rang=pg_fetch_array($resultat)){
$intitule_pays=$rang['intitule_pays'];
$code_pays=$rang['code_pays'];
If((! empty($pays)) && ($intitule_pays == $pays)){
echo"<option selected>".$pays."</option>";
}else{
echo "<option value="".$code_pays."">".$intitule_pays."</option>\n";
}
}
?>
</select>


<LABEL>Ville</LABEL>


<select name="ville" onChange="javascript :document.formation.submit()">
<option value="">Choisit la ville</option>
<!-- Valeur vide pour forcer l'utilisateur à sélectionner -->
<?
$resultat=@pg_query("SELECT * FROM ville ORDER BY code_ville");
while ($rang=pg_fetch_array($resultat)){
$intitule_ville=$rang['intitule_ville'];
$code_ville=$rang['code_ville'];
If((! empty($ville)) && ($intitule_ville == $ville)){
echo"<option selected>".$ville."</option>";
}else{
echo "<option value="".$code_ville."">".$intitule_ville."</option>\n";
}
}
//Déconnexion
mysql_close();
?>
</select>

</FIELDSET>
</FORM>


Bien, dis moi alors ce qu t'en penses J'espère avoir bien comprise ce que tu m'as dit !
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
20 juin 2005 à 23:18
nan justement, je t'ai deja tout fait, ta plus qu'a recopier tel quel et ca devrait marcher

postresql c'est MA base de donnees, mysql c la TIENNE. donc si ca
marche tjrs pas en recopiant tel quel le code que je t'ai file, essaye
sans les class.
0
chardene_amour_de_freddy Messages postés 71 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 3 août 2005
21 juin 2005 à 10:20
Même en enlevant la class çà ne donne rien.

Voici le code que j'ai eu à modifier

<html>
<head>
<script language="javascript">
function changerPays()
{
// Vérification de la prise en charge de la valeur
alert(document.forms.location.pays.value) ;


/* Là tu recuperes l'id du pays */
var code_pays = document.forms.location.pays.value ;


/* Là tu remplis ton champ caché pour pouvoir passer l'id du pays selectionné */
document.forms.location.code_pays.value = code_pays ;


/* Et pour finir, tu valides ton formulaire pour que l'id du pays selectionné soit passé par post */
document.forms.location.submit() ;
}
</script>
</head>

<?
// Connexion à la base
include ("connexion_eurocall.php");
$id = MYSQL_CONNECT($host,$user,$pass);
mysql_select_db("$bdd");
?>


<FORM name= "location" ACTION="essai_mod_2_liste.php" METHOD="POST">
<FIELDSET STYLE ="background-color: #FFCC99">
<legend class="LEGEND">Dépendances listes déroulantes inter-reliées</legend>

<LABEL>Pays :</LABEL>

<select name="pays" onChange="javascript :changerPays();">
<option value="">Choisit le pays</option>
<!-- Valeur vide pour forcer l'utilisateur à sélectionner -->
<?
if(isset($_POST['idpays']))
echo "ok" ;
else
echo "pas ok"; {


$resultat=mysql_query("SELECT * FROM pays ORDER BY code_pays");


while ($rang=mysql_fetch_array($resultat)){
$intitule_pays=$rang['intitule_pays'];
$code_pays=$rang['code_pays'];
If((! empty($pays)) && ($intitule_pays == $pays)){
echo"<option selected>".$pays."</option>";
}else{
echo "<option value="".$code_pays."">".$intitule_pays."</option>\n";
}
}
echo 'Le code du pays est :' .$_POST['idpays'];}
?>
</select>



<LABEL>Ville</LABEL>


<select name="ville" onChange="javascript :changerPays();">
<option value="">Choisit la ville</option>
<!-- Valeur vide pour forcer l'utilisateur à sélectionner -->
<?
$resultat=mysql_query("SELECT * FROM ville INNER JOIN pays ON ville.code_pays=pays.code_pays
And code_pays = ".$_POST['idpays']."
ORDER BY code_ville ");
while ($rang=mysql_fetch_array($resultat)){
$intitule_ville=$rang['intitule_ville'];
$code_ville=$rang['code_ville'];
If((! empty($ville)) && ($intitule_ville == $ville)){
echo"<option selected>".$ville."</option>";
}else{
echo "<option value="".$code_ville."">".$intitule_ville."</option>\n";
}
}


//Déconnexion
mysql_close();
?>
</select>

</FIELDSET>


</FORM>



</html>
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
22 juin 2005 à 00:02
effectivement ton code marche pas. plusieurs raisons a cela :

dabord, ton document.forms.location.code_pays.value = code_pays ; ne fait reference a aucun champs. tu a du oublier un

ensuite, il faut que tu rajoute un $pays=$_POST['pays']; au debut de ton script

tu a aussi un accolade que tu ouvre bizarrement

if(isset($_POST['idpays']))


echo "ok" ;


else


echo "pas ok"; {

a mon avis, elle devrait plutot se trouver pares le else

et puis plusieurs autres petites erreurs. enfin voila le code qui marche chez moi:









function changerPays()

{

// Vérification de la prise en charge de la valeur

alert(document.forms.location.pays.value) ;



/* Là tu recuperes l'id du pays */

var code_pays = document.forms.location.pays.value ;



/* Là tu remplis ton champ caché pour pouvoir passer l'id du pays selectionné */

// document.forms.location.code_pays.value = code_pays ;



/* Et pour finir, tu valides ton formulaire pour que l'id du pays selectionné soit passé par post */

document.forms.location.submit() ;

}
















Dépendances listes déroulantes inter-reliées


Pays :




Choisit le pays












Ville






Choisit la ville





















0
Rejoignez-nous