IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Récupération des données sélectionnées dans un formulaire


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
     <form id="form1" name="form1" method="post" action="index.php?page=resultats">
    <p>Nom</p>
    ...
    Merci pour toute aide

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Membre régulier Avatar de B.Moncef
    Étudiant
    Inscrit en
    Août 2007
    Messages
    75
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 75
    Points : 88
    Points
    88
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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/
    Pas de question techniques par MP

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/07/2009, 11h55
  2. [MySQL] Récupération des donné MYSQL dans un champ select simple
    Par themaster dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/04/2009, 18h06
  3. Réponses: 1
    Dernier message: 15/09/2008, 10h21
  4. [MySQL] Récupération des données sélectionnées par bouton
    Par Korias dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/06/2008, 15h09
  5. Réponses: 2
    Dernier message: 20/02/2004, 08h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo