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érer automatiquement des données à partir du Select


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut Récupérer automatiquement des données à partir du Select
    Salut tout le monde,

    J'ai deux boutons Select et je veux bien récupérer les donnés d'une BD dans le deuxième à partir du premier. Je vous montre le code:

    2 tables:
    Mat:categorie, num.
    categorie:categorie.

    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
     
    <?
    $connexion = mysql_connect('localhost','root','');
    mysql_select_db('BD',$connexion);
     
    $requete = "SELECT categorie FROM categorie";
     
    $req = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());
     
    .... Form & tableau ...
     
    <tr>
        <td>Catégorie :</td>
        <td>
    	<select name="categorie" onChange='parent.location="javascript:location.reload()"' > 
          <option selected="selected" >Sélectionner la catégorie</option> 
    	  <? while($data = mysql_fetch_assoc($req2))  
    		{$categorie=$data['categorie']; ?> <option>
    		<? echo $categorie;?></option> <?
    		}
     
    		?> 
        </select>
     
    	</td>
      </tr>
      <tr>
    Jusqu'au là ça marche (pour le remier select), j'actualise la page pour que les données du deuxième select soient actualisées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <tr>
        <td>Nº de série  :</td>
        <td>
    	<select name="num" > 
          <option selected="selected" >Sélectionner le num</option> 
    	  <? while($data = mysql_fetch_assoc($req3))  
    		{$num_de_serie=$data['num']; ?> <option>
    		<? echo $num;?></option> <?
    		}?> 
        </select>
    	</td>
      </tr>
    Ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <? $categorie2= $_POST['$categorie'];
    		$requete3 = "SELECT num FROM mat where categorie='$categorie2'";
    		$req3 = mysql_query($requete3) or die('Erreur SQL !<br>'.$requete3.'<br>'.mysql_error());?>
    je sais pas oú le mettre .. ça marche nul part!!!
    je veux que les "num" s'affichent au niveau du 2eme select group by categorie >> la catégorie sélectionnée dans le 1er select

    Veuillez m'aider ^_^
    Merciiii!

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    On ne comprend rien à ce que tu souhaites faire désolé, explique mieux

  3. #3
    Membre très actif Avatar de polkduran
    Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 155
    Par défaut
    tu vérifies ton $_POST, s'il contient ' catégorie tu le mets dans ton where la condition de la requête pour 'mat'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $where = 'where 1';
    if(array_key_exists('categorie',$_POST)){
        $cat = $_POST['categorie'];
        $where.=" and categorie='$cat'";
    }
    // ....
    $requete3 = "SELECT num FROM mat $where";
     
    //tu remplis ton select pour mat, je suppose que si la catégorie n'est pas renseignée
    //tu affiches tous les résultats de 'mat',
    //si c'est pas le cas tu fais une condition pour l'affichage de ton select de 'mat'
    par contre tu ne peux pas faire un simple 'reload' quand tu choisis ton premier select car la requête est envoyée en GET et tu n'auras jamais ton $_POST, il faut donc que tu soumettes ton form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function submitForm(){
        var monForm = document.getElementById('idDuForm');
        monForm.submit();
    }
    et dans ton 'onchange' de tons select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select ....... onchange="submitForm();">

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut Merci
    Merci bien pour ta réponse, ça m'a beaucoup aidé!
    J'ai inséré ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(array_key_exists('categorie',$_POST)){
        $categorie = $_POST['categorie'];
        $where=" categorie='$categorie'";
    	}
     
        $requete3 = "SELECT num FROM mat where $where ";
    Ça marche quand j'insère le javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function submitForm(){
        var form2 = document.getElementById('form2');
        form2.submit();
    }
    sachant que :
    <form name="form2" id="form2" action="" method="post">

    Mais le problème c'est que lorsque j'ajoute l'action, ça va loader la page en question pas celle actuelle!!!
    Comment puis-je faire pour éviter ça, la requete ne marche qu'avec ce Jscript!

    Merci encore.

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut et
    En plus, lors du select le premier select retourne au cas initial, il garde la catégorie qu'était affichée avant de sélectionner celle qu'on veut!
    J'aimerais bien que la catégorie sélectionnée reste affichée, pour que ça ne pose pas de problèmes lors du Submit (ajout des données dans une autre table)

  6. #6
    Membre très actif Avatar de polkduran
    Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 155
    Par défaut
    Citation Envoyé par sunatva Voir le message
    sachant que :
    <form name="form2" id="form2" action="" method="post">

    Mais le problème c'est que lorsque j'ajoute l'action, ça va loader la page en question pas celle actuelle!!!
    je n'ai pas bien compris tes propos, tu dis que quand tu fais l'action ça va loader la page en question, je suppose que tu parles de la page du formulaire, n'est-ce pas ? et ce que tu appelles "la page actuelle" c'est la page où tu as tes 'selects',
    or, étant donné que le form d'id 'form2' à comme action="" donc il va vers la page sur laquelle tu te trouves déjà,
    donc, c'est la même page, n'est-ce pas

    donnes-moi plus de détails parce que je ne vois pas ce que tu veux dire
    ________________________
    Citation Envoyé par sunatva Voir le message
    En plus, lors du select le premier select retourne au cas initial
    ce que tu peux faire, c'est dans ta boucle pour afficher les catégories tu vérifies si la valeur 'option' courante est égal à ton $_POST["categorie"] alors tu le mets en 'selected="selected"'

    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
     
    $categorie = '';
    if(array_key_exists('categorie',$_POST)){
        $categorie = $_POST['categorie'];
        $where=" categorie='$categorie'";
    }
     
    //.........................
    // début création du select
    //......
    while($data = mysql_fetch_assoc($req2))  {
        echo '<option';
        if($data['categorie'] == $categorie)
            echo ' selected="selected" ';
        echo '>';
        echo $data['categorie'];
        echo '</option>';
     
    }
    //...........
    //fin création du select
    comme ça ton select sera positionné sur la valeur de la catégorie si elle est renseignée

  7. #7
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    Oui Merci .. ça marche le code pour le Selected.

    Mais ce que je voulais dire par la page en question c'est la page vers laquelle je veux que mon submit emène!

    étant donné mon form2 là ou il y a les 2 select est dans la page1.php
    je voulais faire un ajout vers la page2.php, mais si je remplie l'action de mon form2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form name="form2" id="form2" action="page2.php" method="post" >
    lors du load ça va charger la page2.php.
    Si je laisse action="" tout va bien sauf que lors du submit (bouton) ça me ramène nul part!!!

  8. #8
    Membre très actif Avatar de polkduran
    Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 155
    Par défaut
    ah ok, j'ai compris, je pensais qu'il s'agissait de la même page.

    ce que tu peux faire c'est de charger ta page1 en GET au lieu de POST quand ta valeur du select change, avec le paramètre correspondant à la catégorie

    du coup ta fonction submitForm() devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function setCategorie(select){
        var categorie = select.value;
        var url = 'page1.php?categorie='+categorie;
        window.location = url;
    }
    et dans ton select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select ....... onchange="setCategorie(this);">
    n'oublies pas de donner une valeur à chaque 'option' (value="uneCategorie") pour que le 'select' puisse récupérer la valeur
    et dans ta page1.php au lieu de récupérer le $_POST tu le récupères en $_GET

    comme ça j'imagine que tu n'auras plus de problème avec tes forms (bon j'espère)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupérer automatiquement des données depuis excel
    Par youssef288 dans le forum Langage
    Réponses: 1
    Dernier message: 10/06/2013, 13h09
  2. Récupérer des données à partir d'un fichier EXCEL
    Par cati_78 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/04/2009, 20h21
  3. Récupérer des données à partir d'une URL ?
    Par Bebert71 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/02/2009, 12h53
  4. Réponses: 2
    Dernier message: 19/08/2008, 15h01
  5. Réponses: 5
    Dernier message: 17/06/2008, 17h05

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