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 :

Formulaire et liste dépendant d'une table


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 75
    Par défaut Formulaire et liste dépendant d'une table
    Bonjour à tous, je viens demander de l'aide sur un projet et dont je n'arrive pas à trouver la solution débutant tout juste en PHP et SQL...

    J'ai crée un formulaire qui me permet de remplir ma base de données. Je ne mets pas le code du formulaire mais le code de remplissage qui après plusieurs tests, fonctionne sans problème :
    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
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=reservation', 'root', '');
    }
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }
     
    $req = $bdd->prepare('INSERT INTO resa_mass_relax (nom, prenom, telephone, mail, massage, date, heure) VALUES(:nom, :prenom, :telephone, :mail, :massage, :date, :heure)');
    $req->execute(array(
    	'nom' => $_POST['nom'],
    	'prenom' => $_POST['prenom'],
    	'telephone' => $_POST['telephone'],
    	'mail' => $_POST['email'],
    	'massage' => $_POST['RadioGroup1'],
    	'date' => $_POST['DateS'],
    	'heure' => $_POST['Heure'],
    	));
    ?>
    Mon objectif serait de pouvoir lier le choix de l'heure selon la date sélectionnée (système de réservation en fait). Si le client, entre une date, n'apparaissent dans la liste déroulante du dessous, que les horaires disponibles (9h - 10h,...)

    Je pensais commencer par un tri sur la base contenant la date rentrée : mais déjà là je suis bloqué et j'ai une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $heure_bonne = $bdd->query('SELECT heure FROM resa_mass_relax WHERE date= 'DateS'');
    Pouvez vous me venir en aide ?? Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ca aurait été bien de nous donner l'erreur.

    Je pense que c'est plutot un truc comme ça que tu veux écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $heure_bonne = $bdd->query('SELECT heure FROM resa_mass_relax WHERE date= "' . $_POST['DateS']. "'");
    Je te rappelle par contre qu'il faut protéger tes requêtes lorsque tu mets des données externes dedans.
    En PDO on utilise les requêtes préparées.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 75
    Par défaut
    Bonjour Sabotage et merci beaucoup pour ton aide.
    Avant de voir ta réponse, j'ai bidouillé un peu mon code pour arriver plus ou moins à ce que tu me disais.

    J'ai changé mon date picker pour qu'il soit plus simple. Voici le code qui permet de remplir l'input date.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="date_debut" type="text" id="date_debut" style="font-family:Courier New;font-size:16px;" value="" readonly="readonly"><a href="javascript:popupwnd('calendrier.php?idcible=date_debut&langue=fr','no','no','no','yes','yes','no','50','50','450','280')" target="_self"><img src="images/calendrier.gif" id="Image2" alt="" align="top" border="0" style="width:26px;height:26px;"></a>
    Je te fais grâce du code java, c'était juste pour te montrer l'id de la date.
    Ensuite quand je veux remplir la liste déroulante de l'heure qui dépend de la date choisie qui est contenu dans une table à part selon ce que saisit l'utilisateur comme date :

    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
    <?php
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=reservation', 'root', '');
    }
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }
     
    $reponse = $bdd->query("SELECT heure_choisie FROM horaires WHERE date_choisie='".$_POST['date_debut']."'");
     
    ?>
    <label for="heure_possible">Horaires disponibles</label>
    <select name="heure_possible" id="heure_possible">
    <option value=<?php echo $reponse; ?></option>
    </select>
    Avec ce code, il me dit que la variable date début n'existe pas !! (unedfined)
    Par contre j'arrive bien à la récupérer dans la page de validation du formulaire avec un .$_POST['date_debut]...

    Donc je ne comprends pas

    L'objectif : au moment où la date est rempli dans l'input par l'utilisateur, je voudrais que la liste déroulante soit automatique et n'affiche que le contenu de ma table.

Discussions similaires

  1. [2.x] Formulaire: récupérer une liste derroulante d 'une table
    Par oukacha dans le forum Symfony
    Réponses: 12
    Dernier message: 04/05/2012, 10h36
  2. Liste déroulante (liée à une table SQL) dans un formulaire
    Par helico57570 dans le forum Modélisation
    Réponses: 1
    Dernier message: 09/11/2009, 13h41
  3. [AC-97] liste dépendant d'une autre dans formulaire continu
    Par 6ril25 dans le forum IHM
    Réponses: 8
    Dernier message: 03/09/2009, 12h26
  4. Réponses: 3
    Dernier message: 14/08/2006, 21h27
  5. Formulaire avec liste basée sur une autre table
    Par sabotage dans le forum Langage SQL
    Réponses: 6
    Dernier message: 10/08/2005, 13h43

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