doomer2 Posté 20 Février 2005 Posté 20 Février 2005 Bonjour, Je suis en train de finaliser un site en Xhtml strict et me voilà confronter à un soucis pour afficher des données d'une table sql via une liste déroulante. Avant sans que la page soit en xhtml strict cela fonctionnait. J'arrive à afficher dans ma liste déroulante le contenu de ma table sans probléme mais je n'arrive pas lorsque je choisis dans la liste un item à afficher les données correspondantes. Je précise que la premiere selection affiche bien les données de la table mais c'est lorsque on utilise la liste deroulante rien ne se produit. J'ai un message d'erreur : Erreur : client is not defined Voici le fichier en cause, j'utilise une fonction javascript pour rediriger mais là cela ne fonctionne plus, peut être existe t'il une autre façon : <script type="text/javascript">function ChangeClient(){if (client.sel_client.options[client.sel_client.selectedIndex].value!="")document.location.href="infos.php?Clecli="+client.sel_client.options[client.sel_client.selectedIndex].value;}</script><form method="post" action="fichecli.php?num=$num" name="client" id="client"><h3> Commune de <?php print $commune; ?> (<?php print $Codepost;?>)</h3><? echo '<img src="'.$photo.'" width="292" height="188" border="1"/>'?><p>Le Maire<?php print $Nom_prenom; ?></p><p>Téléphone:<?php print $TelCli; ?></p><p>Fax : <?php print $FaxCli; ?></p><p>Email : <?php echo '<a href="mailto:'.$EmailCli.'"> '.$EmailCli.' </a>' ?></p><p>Site Internet :<? echo '<a href="'.$SiteCli.'" target="_blank"> '.$SiteCli.' </a>' ?></p><p>Les permanences:<?php print $Permcli; ?></p><p>Cherchez la Mairie de :</p><p><select name="sel_client" id="sel_client" onchange="ChangeClient()"><?php while($data_allclient=mysql_fetch_array($req_allclient)){if ($data_allclient[Clecli]==$Clecli){ print ("<option selected value='$data_allclient[Clecli]'>".$data_allclient[commune]." </option>");}else{print ("<option value='$data_allclient[Clecli]'>".$data_allclient[commune]." </option>");}} ?></select></p></form><?php mysql_close();?>
doomer2 Posté 20 Février 2005 Auteur Posté 20 Février 2005 V que j'ai eu peu de réponse et que j'ai effectué de nombreuses recherche sans succés. Je souhaiterais savoir si il existait un tutorial expliquant à partir d'une liste deroulante afficher le contenu d'une table. Je 'explique j'ai une table comme celle-ci : CREATE TABLE commune ( Clecli tinyint(4) NOT NULL auto_increment, Nomcli varchar(50) NOT NULL default '', Precli text NOT NULL, Adresse text NOT NULL, Codepost int(5) NOT NULL default '0', commune text NOT NULL, Permcli varchar(255) NOT NULL default '', TelCli varchar(10) NOT NULL default '', FaxCli varchar(10) default NULL, EmailCli varchar(35) NOT NULL default '', SiteCli varchar(150) NOT NULL default '', photo varchar(250) default NULL, carte varchar(250) default NULL, adsl varchar(25) default 'pas disponible', logo varchar(250) default 'logo/do', fleur varchar(50) default NULL, photomaire varchar(250) default NULL, PRIMARY KEY (Clecli,Nomcli)) TYPE=MyISAM COMMENT='Table Commune'; Et je souhaiterais à partir d'une liste déroulante qui affiche le nom de la commune, on arrive à afficher sur les données de la commune sélectionner dans la liste déroulante. Si quelqu'un peut m'aiguiller ? Merci et j'attends avec impatience vos contributions.
Sarc Posté 20 Février 2005 Posté 20 Février 2005 Tu veux en fait que dès qu'on clique sur le nom de la commune, les infos s'affichent à côté ? Bref, tu veux une redirection automatique dès qu'on appuie sur la commune ? Donne l'url également, ça peut aider à visualiser le problème...
zedzed Posté 20 Février 2005 Posté 20 Février 2005 Personnellement je choisirais la solution de poster le formulaire plutôt qu'utiliser "document.location.href". Sur le select tu mets : onchange="java script:document.client.submit();" Et ensuite pour l'affichage des informations spécifique à la commune: If ($_POST['sel_client'] == ""){ echo "aucune commune selectionnée"; }else{ //recupération des informations à partir du numéro de commune //affichage des informations } Ensuite tu affiche ton select. J'espere être clair ...
doomer2 Posté 20 Février 2005 Auteur Posté 20 Février 2005 (modifié) Bonsoir, Tout à fait Sarc c'est cela mon probléme. Voici le lien demandé : Page de test avec liste deroulante J'ai essayé de nombreuses choses mais en vain. Le fait de faire du XHTML strict pose quelques soucis de compatibilité de mes anciens scripts. Une aide seriat interessante. Merci Modifié 20 Février 2005 par doomer2
Sarc Posté 20 Février 2005 Posté 20 Février 2005 Moi j'avais ça : <select name='page' onChange='if (this.selectedIndex!=0) window.location.href = this.options[this.selectedIndex].value;'> Il faut mettre en valeur de tes <options> l'url de la page en question... Jte garantis rien, mais chez moi ça marchait !
doomer2 Posté 20 Février 2005 Auteur Posté 20 Février 2005 As tu un modéle de script pour que je puisse comparer par rapport à ce que j'ai fait ? Merci
Sarc Posté 20 Février 2005 Posté 20 Février 2005 J'ai pas grand chose, j'ai juste le fichier enregistré sur mon disque, je ne l'utilise plus pour mes sites (javascript désactivé => pas d'accès aux autres pages...) mais mon code, c'était ça : echo "<div align=center><select name='page' onChange='if (this.selectedIndex!=0) window.location.href = this.options[this.selectedIndex].value;'>\n<option SELECTED>allez voir une autre catégorie</option>\n";while ($ligne = mysql_fetch_array($res)){ extract($ligne); echo "<option value=page.php?page=$id'>$nom</option>\n";}echo "</select></div>"; NDSarc : pas besoin de <form> pour faire ça !!
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant