requête à partir de 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 : requête à partir de 2 listes déroulantes

par lebreton22 » 05 avr. 2006, 09:22

Pour ce qui est de la page principale :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">

	<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
	<TITLE>Recherche stagiaires</TITLE>
<SCRIPT language="JavaScript">
<!--
function Choix(form) {
i = form.Rubrique.selectedIndex;
if (i == 0) {
  for (i=0;i<4;i++) {
    form.Page.options[i].text="";
    }
  return;
  }
form.Page.selectedIndex = 0;
switch (i) {
case 1 : var txt = new Array ('Groupe 1','Groupe 1 A','Groupe 1 B','Groupe 2','Groupe 2 A','Groupe 2 B','Groupe Bilingues'); break;
case 2 : var txt = new Array ('Arts Visuels','Musique','EPS','Langue','Breton','',''); break;
case 3 : var txt = new Array ('Sciences et Technologie','Histoire-Géographie','','','','',''); break;
case 4 : var txt = new Array ('Arts Visuels','Musique','Langue','','','',''); break;
case 5 : var txt = new Array ('Anglais','Espagnol','','','','',''); break;
case 6 : var txt = new Array ('MLD 1','MLD 2','MLD 3','','','',''); break;
case 7 : var txt = new Array ('SAP','APR','','','','',''); break;
}
form.Page.options[0].text="--- Choisissez une page ---";
for (i=0;i<7;i++) {
  form.Page.options[i+1].text=txt[i];
  }
} 
// -->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="purple" MARGINHEIGHT="0" MARGINWIDTH="0">
<div align="center">
  <table border="0" cellspacing="0" cellpadding="10" width="780" bgcolor="#EBC896" align="">
    <tr> 
      <td height="120"> <p align="center"><strong>S&eacute;lection des stagiaires</strong></p>
        <form action="traitement.php" method="post">
          <table>
            <tr> 
              <th>Formations</th>
              <th>Groupes</th>
            </tr>
            <tr> 
              <td><select name="Rubrique" onChange='Choix(this.form)'>
                  <option>--- Choisissez une rubrique ---</option>
                  <option>Enseignements</option>
                  <option>Dominante</option>
                  <option>Complément 1</option>
                  <option>Compléments 2 et 3</option>
                  <option>Langue</option>
                  <option>MLD</option>
                  <option>Analyses de Pratiques</option>
                </select></td>
              <td><select name="Page">
                  <option>--- Choisissez une page ---</option>
                  <option></option>
                  <option></option>
                  <option></option>
                  <option></option>
                  <option></option>
                  <option></option>
                  <option></option>
                </select></td>
            </tr>
          </table>
          <input type="submit" name="Submit" value="Envoyer">
        </form>
        <h2 align="center">&nbsp; </h2></td>
    </tr>
  </table>
</div>

</BODY>
</HTML>

par Cyrano » 05 avr. 2006, 09:21

On écrit "<?php" et non "<? php"

par lebreton22 » 05 avr. 2006, 09:20

J'ai voulu vérifier les variables dans une page que voici
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
<? php
$rubrique = isset($_POST['Rubrique']) ? $_POST['Rubrique'] : "";
$page = isset($_POST['Page']) ? $_POST['Page'] : "";
echo $_POST['Rubrique'];
echo $_POST['Page'];

//... suite du code
?>
</body>
</html>

par Cyrano » 05 avr. 2006, 09:14

Montre donc les 10 premières lignes de code, j,ai un doute...

par Invité » 05 avr. 2006, 09:10

Il ne manque rien, de ce côté c'est ok

par Cyrano » 05 avr. 2006, 08:50

Vérifie donc s'il ne manquerait pas un ";" à la fin de l'instruction précédente :-k

par lebreton22 » 04 avr. 2006, 23:29

C'est fait mais maintenant j'ai ceci :
Parse error: parse error, unexpected T_VARIABLE in /var/www/free.fr/b/b/ecole.hoche22/traitement.php on line 10

ligne incriminée :
$rubrique = isset($_POST['Rubrique']) ? $_POST['Rubrique'] : "";

par Cyrano » 04 avr. 2006, 23:04

Il faut que dans un premier temps il y ait adans la balise form deux attributs:
  1. action="" : la valeur doit être l'url relative (ou absolue) de la page de traitement;
  2. method="" : post ou get selon qu'on transmet les variables via l'url (get) ou non (post)
Il manque également le bouton submit.
Si la page de traitement est en PHP, on récupèrera alors les données selon la valeur ed l'attribut method soit dans $_GET soit dans $_POST
Ces deux variables sont des "super-globales" et sont des tableaux associatifs dont les index sont les valeurs des attributs "name" des champs du formulaire. Donc on récupèrera par exemple $_POST['Rubrique'] et $_POST['Page'] qu'on pourra transférer dès réception dans des variables normales :
<?php
$rubrique = isset($_POST['Rubrique']) ? $_POST['Rubrique'] : "";
$page     = isset($_POST['Page'])     ? $_POST['Page']     : "";
//... suite du code
?>
Il suffira donc ensuite tout simplement d'insérer ces variables dans la requête SQL.

par lebreton22 » 04 avr. 2006, 22:51

Voilà bien la question : "comment récupérer les données issues des deux listes. .. ce qui me permettra ensuite de faire la requête.
Ci-dessous le code qui fonctionne d'une liste à l'autre. En résumé, il me faudrait:
1) récupérer dans la liste "rubrique" la valeur saisie comme nom de champ
2) dans la liste "page", j'ai la valeur à passer dans la requête.

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1"> <TITLE>Recherche stagiaires</TITLE> <SCRIPT language="JavaScript"> <!-- function Choix(form) { i = form.Rubrique.selectedIndex; if (i == 0) { for (i=0;i<4;i++) { form.Page.options[i].text=""; } return; } form.Page.selectedIndex = 0; switch (i) { case 1 : var txt = new Array ('Groupe 1','Groupe 1 A','Groupe 1 B','Groupe 2','Groupe 2 A','Groupe 2 B','Groupe Bilingues'); break; case 2 : var txt = new Array ('Arts Visuels','Musique','EPS','Langue','Breton','',''); break; case 3 : var txt = new Array ('Sciences et Technologie','Histoire-Géographie','','','','',''); break; case 4 : var txt = new Array ('Arts Visuels','Musique','Langue','','','',''); break; case 5 : var txt = new Array ('Anglais','Espagnol','','','','',''); break; case 6 : var txt = new Array ('MLD 1','MLD 2','MLD 3','','','',''); break; case 7 : var txt = new Array ('SAP','APR','','','','',''); break; } form.Page.options[0].text="--- Choisissez une page ---"; for (i=0;i<7;i++) { form.Page.options[i+1].text=txt[i]; } } // --> </SCRIPT> </HEAD> <BODY BGCOLOR="purple" MARGINHEIGHT="0" MARGINWIDTH="0"> <div align="center"> <table border="0" cellspacing="0" cellpadding="10" width="780" bgcolor="#EBC896" align=""> <tr> <td height="120"> <p align="center"><strong>S&eacute;lection des stagiaires</strong></p> <form> <table> <tr> <th>Formations</th> <th>Groupes</th> </tr> <tr> <td><select name="Rubrique" onChange='Choix(this.form)'> <option>--- Choisissez une rubrique ---</option> <option>Enseignements</option> <option>Dominante</option> <option>Complément 1</option> <option>Compléments 2 et 3</option> <option>Langue</option> <option>MLD</option> <option>Analyses de Pratiques</option> </select></td> <td><select name="Page"> <option>--- Choisissez une page ---</option> <option></option> <option></option> <option></option> <option></option> <option></option> <option></option> <option></option> </select></td> </tr> </table> </form> <h2 align="center">&nbsp; </h2></td> </tr> </table> </div> </BODY> </HTML>
Avec tous mes remerciements pour vos idées.

par Cyrano » 04 avr. 2006, 21:55

Une idée pour faire quelle partie au juste : ta question est très vague. La première chose à faire consiste à récupérer les choix du formulaire et ensuite à les insérer dans ta requête. Donc comment récupères-tu tes informations ?

requête à partir de 2 listes déroulantes

par lebreton22 » 04 avr. 2006, 18:26

Bonjour
Je vous explique mon pb : j'ai créé 2 listes déroulantes en javascript : la première charge les items de la seconde en fonction des choix de liste1
Je voudrais maintenant utiliser les deux listes pour créer une requête mysql soit quelque chose du genre :

Code : Tout sélectionner

select * from matable where champ1= 'valeur champ 2'
Champ1 est le choix de liste 1 et champ 2 celui de liste 2.
Est-ce que quelqu'un aurait une idée ?