Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/08/2007, 19h02   #1
Invité de passage
 
Inscription : mai 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 13
Points : 3
Points : 3
Par défaut Récupération des données sélectionnées dans un formulaire

Bonjour à ts,

Je souhaiterais me faire aider sur un pb que je rencontre, et qui comprend les includes. Je m'explique:

J'ai une page gabarit (index.php) divisée en deux (avec des div) et qui va inclure dans la colonne gauche une page de recherche (recherches.php) et dans la colonne centrale elle incluera les autres pages du site (ou par défaut:la page d'accueil "accueil.php") .
Le code correspondant dans "index.php" est le suivant:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
...
<div id="global"> 
 
<div class="gauche">
  <?php include('recherches.php'); ?>
</div>   
 
<div id="centre">  
	<?php 
	  //Tableau contenant les pages autorisées
        $pageOK = array('resultats' => 'resultats.php',
                        'news' => 'news.php');
 
  	  // Tester que le paramètre d'url existe et qu'il est bien autorisé
  		if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) 
    		include($pageOK[$_GET['page']]);    // Appel du contenu central de la page
  		else 
    		include('accueil.php');   	// Page d'accueil (par défaut) 
 
	?>
</div>  <!--Fermeture div centre-->
</div>   <!--Fermeture div global-->
...
Comme vs le constatez, la page "recherches.php" doit figurer ds ttes les pages du site. Cette page constitue un formulaire de recherche qui permet de sélectionner les champs récupérés ds une bdd mysql; et une fois cliquer sur le bouton rechercher, la page "résultats.php" doit afficher les résultats de cette recherche dans la COLONNE CENTRALE de "index.php".

Le pb que je rencontre se situe qu'on je sélectionne (dans "index.php") les champs de recherche, je souhaite récupérer ts ces champs sélectionnés après avoir cliqué sur le bouton rechercher.
Car une fois que je clique sur rechercher, la page "resultats.php" affiche bien les résultats dans la colonne centrale, mais la colonne gauche càd le formulaire de recherche sera actualisé, et n'affiche plus ce que j'ai sélectionné et rempli comme champs.
Voici un extrait de la page "recherches.php" pour voir comment j'affiche dans la partie centrale, les autres pages:
Code :
1
2
3
4
5
 
...
 <form id="form1" name="form1" method="post" action="index.php?page=resultats">
<p>Nom</p>
...
Merci pour toute aide
ntahi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 19h21   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Dans ta partie de code include ("recherches.php"), tu devrais faire un option select sur le champ choisi.
Pour se faire, dans recherches.php je présume, tu peux imaginer:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
<select>
  while($tarequete){
    if($tarequete[element]==$_POST['champ_choisi']){
      echo '<option value="xxx" select>'.$valeur.'</option>';
    }else
    {
       echo '<option value="xxx" >'.$valeur.'</option>';
    }
  } 
</select>
Evidemment, j'ai pas tout ton code donc je ne connais pas le nom de tes variables, mais dans l'idée, il me semble que c'est cela que tu cherches.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 20h11   #3
Invité de passage
 
Inscription : mai 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 13
Points : 3
Points : 3
J'ai compris qu'il faut modifier ds "recherches.php", par contre c un peu flou pour moi ce que tu proposes, je te donne une partie du code de la page "recherches.php":

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
form id="form1" name="form1" method="post" action="index.php?page=resultats">
<p>Categories</p>
 
        <select name="categorie" size="1" onchange="javascript : selectcat()">
         <option value="">-- S&eacute;lectionner une categorie--</option>         
 
		<?php
		mysql_select_db('xxx',$connexion); 		  
      		$ma_req = "SELECT * FROM categories;";
     		$res_req = mysql_query($ma_req) or die("Selection table \"categories\" impossible");
 
	   	 // Affectation des variables utilisées pour l'affichage
     		if (mysql_num_rows($res_req)!=0) {  // résultat non vide
        	 while ($une_ligne = mysql_fetch_array($res_req)) {
                     $id_categorie =  $une_ligne["id_categorie"];
         	     $nom_cat= $une_ligne["nom_cat"];
         	     print "<option value=" . $id_categorie; 
         			 if ($id_categorie == $cat){
           			  print " selected";
         			  $rub_libelle=$nom_cat;//memoriser le nom 							 	                           }
           			  print ">" . $nom_cat."</option>";
 
 
   						      		  			  }
                                                                }
 ?>
        </select> 
 
 
<p>Nom
<input name="nom" type="text" size ='30' maxlength="30"/>
</p>
 
 <p >     <input name="find" type="submit"  value="Rechercher" onclick="fct_cases()"/>
 </p>
Il y a donc dans le formulaire, une liste déroulante "catégories", un champs de saisie "nom",.. je termine par le bouton "rechercher".
Le but est donc qu'on je lance la recherche, la page index.php se recharge en affichant les résultats tout en me gardant les valeurs sélectionnés précedemment avant l'envoi du formulaire.
ntahi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2007, 17h24   #4
Membre régulier
 
Avatar de B.Moncef
 
Étudiant
Inscription : août 2007
Messages : 75
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2007
Messages : 75
Points : 83
Points : 83
Code :
if ($id_categorie == $cat)
D'ou vient la variable $cat ?

Pour ton problème, quand tu crés la liste, tu dois faire un test pour savoir si le formulaire a déjà été soumis, et si c'est le cas rajouter un attribut selected="selected" au champ option qui a été sélectionné.

Donc ca devient :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
mysql_select_db('xxx',$connexion); 		  
$ma_req = "SELECT * FROM categories;";
$res_req = mysql_query($ma_req) or die("Selection table \"categories\" impossible");
 
// Affectation des variables utilisées pour l'affichage
if (mysql_num_rows($res_req)!=0) 
{  
    while ($une_ligne = mysql_fetch_array($res_req)) 
    {
         $id_categorie =  $une_ligne["id_categorie"];
         $nom_cat= $une_ligne["nom_cat"];
         print '<option value="' . $id_categorie . '"'; 
         if (!empty($_POST['categorie']) AND $_POST['categorie'] == $id_categorie)
         {
             print ' selected="selected"';
	 }
         if ($id_categorie == $cat)
         {
             $rub_libelle=$nom_cat;//memoriser le nom 		
         }
         print ">" . $nom_cat."</option>";
    }
}
 ?>
Et voila quelque chose qui te ferait beaucoup de bien > http://a-pellegrini.developpez.com/t.../coding-style/
B.Moncef est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h58.


 
 
 
 
Partenaires

Hébergement Web