Fonction 2 listes déroulantes...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fonction 2 listes déroulantes...

par Kimble » 23 mars 2006, 20:05

C'est ce que j'ai fait en attendant ta réponse et ça marche...
Merci et bonne soirée.

par Truc » 23 mars 2006, 19:59

pas sûr qu'un GROUP BY sur "idcategorie" soit intéressant, puisque l'id est sensé être unique,remplace le par "surface"

par Kimble » 23 mars 2006, 13:13

Aprés une journée de galére (écran grillé) :evil: je reviens...
J'ai adopté définitivement le script de Cyrano (merci à lui) mais j'ai un
probléme de doublons dans mon champ "surface" même avec un DISTINCT.
<?php { 
        /* Création de la requête pour afficher les surfaces de chaque modéle*/ 
        $sql2 = "SELECT DISTINCT `id_vente`, `surface`". 
        " FROM `vente`". 
        " WHERE `idcategorie` = ". $idr ."". 
        " GROUP BY `idcategorie`";  
        { 
?>

par Truc » 21 mars 2006, 18:31

Salut,

Le message signal une erreur de construction de la requete. Affiche la requete générée echo $text_query (juste apres l'avoir définie).

Sinon as tu regardé le tuto de la FAQ sur les liste liées

Fonction 2 listes déroulantes...

par Kimble » 21 mars 2006, 17:51

Bonjour à tous, j'essaie de faire :) 2 fonctions pour afficher dynamiquement
2 listes déroulantes, mais j'ai une erreur de type :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\easyphp\www\fonctions_ventes.php on line 65
La ligne 65 : $result=mysql_fetch_array($req);
Ca fonctionne avec 1 liste déroulante, mais pas avec 2 !
Et ensuite mon lien je ne le trouve pas trés net.
Je dois faire un mélange quelque part ! Une idée ?
Merci.
<?php
//Fonction qui affiche 2 listes deroulantes
//$name 1 = nom dela liste SELECT1
//$name 2 = nom dela liste SELECT2
//$champ1 = le champ recherché
//$champ2 = le champ recherché
//$table 1 = table 1
//$table 2 = table 2
//$order1 1 = nom de la colonne1 à trier
//$order1 2 = nom de la colonne2 à trier

function deux_listes_deroulantes($name1,$champ1,$table1,$order1,$name2,$champ2,$table2,$order2,$selected)			{
$text_query="SELECT DISTINCT ".$champ1.",".$champ2." FROM ".$table1.",".$table2." order by ".$order1."asc".$order2." asc";
$req=mysql_query($text_query);
$result=mysql_fetch_array($req);
?>			
<select name="<?php echo $name1 ?>" id="<? echo $name1 ?>">
<?php do 
{?>
<option value="<?php echo $result[0] ?>" <? if ($result[0]==$selected) {echo "selected";}?>><?php echo $result[1];?></option>
<?php } while ($result=mysql_fetch_array($req));?>
</select>
<select name="<?php echo $name2 ?>" id="<? echo $name2 ?>"					
<?php do 
{?>
<option value="<?php echo $result[0] ?>" <? if ($result[0]==$selected) {echo "selected";}?>><?php echo $result[1];?></option>
<?php } while ($result=mysql_fetch_array($req));?>
</select>
			<?php 
			}
?>
La fonction du formulaire qui englobe les 2 listes
<?php 
function form_un_champ_select($action,$name1,$champ1,$table1,$order1,$name2,$champ2,$table2,$order2,$submit)
{
?>
<table> 
<tr>			
<form name="form2" method="POST" action="<? echo $action ?>">
<td>
<?php
deux_listes_deroulantes($name1,$champ1,$table1,$order1,$name2,$champ2,$table2,$order2,"")?>
</td>	
<td>
<input type="submit" class='bouton' name="Submit2" value="<? echo $submit ?>">
</td>					
</form>			
</tr>
</table>
<?php } ?>
traitement.php
<?php
//Rechercher les ventes par modéle et surface
case 'modele_surface':
?>
<fieldset>
<legend><strong>Afficher les ventes par modéle et surface</strong></legend>
<table> 
<tr>
<?php		
$action="index.php?liste=recherche_modele_surface&choix=modele_surface&cat_choisi&surface_choisi=".$cat_choisi.$surface_choisi; 
form_un_champ_select($action,"categorie","cat_choisi","categorie","categorie","surface","surface_choisi","vente","surface","Suivant");		
?>
</tr>		  	
</table>
<br />
</fieldset>			
<?php	
echo "<br />";	
break;
?>