requete en fonction de menu deroulant

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 : requete en fonction de menu deroulant

par donny » 16 mai 2005, 15:51

ouai exact sa fonctionne,

je pensais qu on avait pas le droit de tout mettre dans le form,
je me basai sur cette exemple
http://frederic.bouchery.free.fr/?2004/ ... rs-Boutons

mais apparament cela fonctionne

Merci

par rami » 16 mai 2005, 15:40

Pourquoi tu ne le mets pas dans un formulaire?

par zeus » 16 mai 2005, 15:38

Je dirais : JavaScript !!!!

Mais il va falloir que tu demande dans la catégorie concernée !

recuperation de variable

par donny » 16 mai 2005, 15:35

comment pourrai j efaire pour recuperer la valeur d un bouton radio sachant qu il ne se trouve pas dans un formualire donc je ne peux pas utiliser post et get,car il me faut savoir quel ligne à été cocher pour pouvoir ouvrir une nouvelle fenetre ?
<html>
<head>

<script>

function ouvrirFenetre(id,url){ 
var URL =  url + "?id=" + id ; 
window.open(URL,"PopUp",'width=500,height=350,location=yes,status=no,toolbar=no,scrollbars=no');


} 
</script>
</head>
<body>

<?php 
// on se connecte à MySQL 
$db = mysql_connect('localhost', 'root', ''); 

// on sélectionne la base 
mysql_select_db('conso',$db); 

	 



?>


<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">

<?

// on crée la requête SQL 
$sql = "SELECT distinct marque  FROM `objet`"; 

// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 




echo "<select name=\"bureau\" >"; 

// on fait une boucle qui va faire un tour pour chaque enregistrement
//echo '<option>Choisir une marque</option>'; 
echo '<option>*</option>';
while($data = mysql_fetch_assoc($req)) 
    { 
    echo '<option value="'.$data['marque'].'">'.$data['marque'].'</option>'; 

    } 
echo '</select> '; 
//$id=@$_GET['id'];


///2eme liste deroulante

// on crée la requête SQL 
$sql = "SELECT modele  FROM `objet`"; 

// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 


echo "<select name=\"modele\" >"; 

// on fait une boucle qui va faire un tour pour chaque enregistrement
//echo '<option>Choisir un modele</option>'; 
echo '<option>*</option>';
while($data = mysql_fetch_assoc($req)) 
    { 
    echo '<option value="'.$data['modele'].'">'.$data['modele'].'</option>'; 

    } 
echo '</select> '; 


?>


<input type="submit" name="modif" value="CHERCHER">
<input type="submit" name="sel" value="VALIDER">
</form>






<?

if (isset($_POST['modif'])) { 
        // par défaut, c'est le bouton 1, même si on ne clique pas/ 
        
	
    $marque=$_POST['bureau']; 
    $modele=$_POST['modele'];		
//affichage du tableau 
if($marque!="*" and $modele=="*"){ 
$sql = 'SELECT *  FROM  objet  where marque ="'.$_POST['bureau'].'"'; 
//echo $sql; 

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
}elseif($marque=="*" and $modele!="*"){
$sql = 'SELECT *  FROM  objet  where modele ="'.$_POST['modele'].'"'; 
$req=mysql_query($sql);
}elseif($marque!="*" and $modele!="*"){
$sql = 'SELECT *  FROM  objet  where modele ="'.$_POST['modele'].'" and marque="'.$_POST['bureau'].'"'; 
$req=mysql_query($sql);
}elseif($marque=="*" and $modele=="*"){
$sql = 'SELECT *  FROM  objet '; 
$req=mysql_query($sql);
}
echo '<table  width="80%" border="1" bgcolor="silver">'; 
while($list=mysql_fetch_assoc($req)) 
echo '<tr><td>[color=red] <input type="radio" name="a" value="'.$list['numserie'].'">[/color] </td><td>'.$list['numserie'].'</td><td>'.$list['marque'].'</td><td>'.$list['modele'].'</td></tr>'; 
echo '</table>'; 

//while($data = mysql_fetch_array($req)){ 
    // on affiche les informations de l'enregistrement en cours 
  // echo '<b>'.$data['numserie'];
	//echo  $data['marque'];	

    //} 

} elseif (isset($_POST['sel'])) { 

  echo '<script>ouvrirFenetre('.[color=red] $a[/color] .',"ficheconso.php")</script>'; 
} 


?>
</body>
</html>

par donny » 16 mai 2005, 15:07

ok
je vois

par zeus » 16 mai 2005, 15:02

Non, ça marchera pas ou alors de la même manière

je pensais plutot a tester une fois l'existence ($val = ($_POst[] != *) ? "val1" : "val2"; ) et de tout ecrire à la fin "SELECT * FROM WHERE ".$val mais il faut 2-3 verif et j'ai pas le temps immédiatement !!!!

par donny » 16 mai 2005, 14:50

avec des switch case

par zeus » 16 mai 2005, 14:44

Ca devrait fonctionner !!!

Je pense qu'on devrait pouvoir optimiser mais j'ai pas le temps cet aprèm

par donny » 16 mai 2005, 14:39

:oops:
je suis con je viens de le remarquer
le truc c est qu au depart j avais bien mis bureau et comme je l avais mis dans une variable appelé marque j ai pas fait la bonne modification.

J ai une autre question je souhaite rajouter une autre liste deroulante,pour les modele, et je souhaite aussi faire
des select * ....
pour faire cela je suis obligé de passer par des if si je ne me trompe pas
avec par exemple

if ($_post['bureau']==* and $_post['modele']==*)
{select * from objet;}
 elseif ($_post['bureau']==* and $_post['modele']!=*)
{select * from objet where modele=$_post['modele'];}
elseif ($_post['bureau']!=* and $_post['modele']!=*)
{select * from objet where modele=$_post['modele'] and marque=$_post['marque'];}
elseif ($_post['bureau']!=* and $_post['modele']==*)
{select * from objet where marque=$_post['bureau];}

par zeus » 16 mai 2005, 14:29

C'est ce que je pensais !!! ton $_POST["bureau"], n'est pas valide !!!

reprend ton code pour voir pourquoi il est vide !!!!

par donny » 16 mai 2005, 14:27

j ai fait un echo $sql et j obtiens cela
Notice: Undefined index: marque in c:\program files\easyphp1-7\www\projet\formu2.php on line 72
SELECT * FROM objet where marque = ""
donc j ai mis une marque en dure et cela m affichai bien les resultat mais quand je mets $_POST['marque'] la sa ne fonctione plus ??

par zeus » 16 mai 2005, 14:00

le problème rami, c'est que c'est pas les noms de colonnes douteux qui bloquent !!!!

Mais c'est peut-être lié !!!!

par zeus » 16 mai 2005, 13:58

Dans la boucle que tu me montre, c'est le résultat d'une autre requete que tu affiches !!!

affiche ta 1ere requete et teste la avec une intreface sgbd (phpMyAdmin ?)

comme ça :
$sql = 'SELECT *  FROM  objet  where marque="'.$_POST['bureau'].'"'; 
echo $sql;

par rami » 16 mai 2005, 13:56

A mon avis ca vient de tes noms de champ avec des caractères spéciaux. Car des indices de tableau avec des caractères : ° ou è ou tout autre caractère spécial ne passe pas :wink:

par donny » 16 mai 2005, 13:54

il existe c est bizarre car j ai deja fait une requete sur eux et sa me les affichai et j affiche meme la marque dans la liste deroulante
while($data = mysql_fetch_assoc($req)) 
    { 
    // on affiche les informations de l'enregistrement en cours 
    //echo '<b>'.$data['N° série'].' '.$data['marque']; 
    //echo ' <i>date de naissance : '.$data['modèle'].'</i><br>'; 
echo '<option value="'.$data['marque'].'">'.$data['marque'].'</option>'; 

    } 
echo '</select> '; 
//