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 :

Problème <OPTION Formulaire


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Par défaut Problème <OPTION Formulaire
    Bonsoir tous le monde
    Je suis en train de développer une petite base de donnée pour ma boite et j'ai un petit problème avec OPTION

    1. J'ai une table "lieu_tbl" avec trois champs "npa_id", "npa_npa" et "npa_lieu"[/LIST].

    2. j'ai un formulaire pour insérer des données dans la table "employe", dans ce dernier j'ai des champs INPUT et 2 OPTION un npa et un lieu.

    3 voici le code pour charger les listes(je l'ai trouvé sur le net et adapté ca marche la n'ai pas mon 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
    // connexion à la base
    $Host = "localhost";
    $User = "*****";
    $Password = "*****";
    $Database = "gestion";
     
    $idConnect = mysql_connect( $Host, $User, $Password)
                 or die( "Connexion impossible.");
    $db = mysql_select_db( $Database, $idConnect)
                 or die( "Accès base impossible.");
    // Requête SQL
    $rqsql = "SELECT npa_id, npa_npa FROM lieu_tbl ORDER BY npa_id ASC";
    // Exécution de la requête
    $result = mysql_query( $rqsql, $idConnect)
                 or die( "Exécution requête impossible.");
     
     
    // Construction de la chaîne de caractères qui fait la // liste
     
    $ld_npa = "<SELECT NAME='ls'>";
    $ld_npa .= "<OPTION VALUE=0>Choisissez</OPTION>";
    // On boucle sur la table
    while ( $row = mysql_fetch_array( $result)) {
        // $row est un tableau associatif
        // les éléments sont «indicés» par les noms
        // des colonnes. Je préfère cette technique à celle
        // des indices numériques..on ajoute une colonne..
        $npa_npa = $row["npa_npa"];
        $npa_lieu = $row["npa_lieu"];
        $ld_npa .= "<<OPTION VALUE='$npa_lieu'>$npa_npa</OPTION>";
    }
    $ld_npa.= "</SELECT>";
    mysql_close( $idConnect);
    ?>
     
    <?php
    print $ld_npa;
    ?>
    4. comme faire pour charger l' OPTION lieu quand je selectionne npa et inversement

    Voilà j'espère que j'ai été assez clair

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Salut, il faut que tu forces la validation de ton formulaire et ainsi recharger ta page lors sur changement de sélection, tu peux voir sur ce topic http://www.developpez.net/forums/sho...d.php?t=257179 pour avoir une piste ou faire une recherche sur "listes liées".

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Par défaut impossible d' adapter le code
    Bonjour

    Merci pour ces infos mais je n'arrive pas à adapter le code.

    voici le code


    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php
     
    //Connexion à la base de données
    mysql_connect("localhost", "utilisateur", "pass");
    mysql_select_db("gestion");
     
    //Recherche des numéros NPA
    $req_npa = mysql_query ("SELECT npa_id, npa_npa FROM lieu_tbl");
    ?>
     
    <form name="formulaire1" method="get" action="essais.php">
      <p><strong>Liste des numéros NPA </strong>
        <select name="marque" onchange="essais.btnsubmit.click();">
            <option selected value='0'>NPA</option>
            <?php
                //Chargement de la liste déroulante avec le resultat de la requête
                    while(list($npa_id, $npa_npa) = mysql_fetch_row($req_npa))
                    {
                            if ((isset($_GET['lieu_tbl'])) && ($npa_id==$_GET['lieu_tbl']))
                                    $sel = "selected";
                            else
                                    $sel = "";
     
                            echo "<option " . $sel . " value=\"$npa_id\">$npa_npa</option>\n";
                    }
            ?>
        </select>
            <?php
            mysql_free_result($req_npa);
            ?>
      </p>
      <p><strong>Liste des mod&egrave;les de la marque selectionn&eacute;</strong> 
        <select name="type">
            <option selected value='0'>Tous les modèles</option>
            <?php
             if(isset($_GET['lieu_tbl']))
             {
                  $req_lieu = mysql_query ("SELECT npa_id,  npa_lieu FROM lieu_tbl WHERE npa_id =" . $_GET['lieu_tbl'] . " ORDER BY npa_lieu");
                  while(list($lieu_id, $npa_lieu) = mysql_fetch_row($req_lieu))
                          echo "<option value=\"$lieu_id\">$npa_lieu</option>\n";
             }
            ?>
        </select>
      </p>
        <p>
            <input name="btnsubmit" type="submit" id="btnsubmit" value="Envoyer"> 
            </p>
      <p>&nbsp;</p>
    </form>

    1 La première liste se charger correctement mais pas la seconde
    2 je debute est il y a différente chose que je ne connais pas
    , et je ne suis pas sur que ce code soit juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="marque" onchange="essais.btnsubmit.click();">
    3 pourriez-vous m'aider un petit coup je doit etre a 2 doigts de réussir


    merci

  4. #4
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Il faut déjà que tu remplaces essais par formulaire1, et le nom de ton premier SELECT c'est lieu_tbl et pas marque.

    Sur l'autre topic la page se recharge bien mais pas la deuxième liste, c'est en cours de résolution.

    Par contre si tu sais pas à quoi correspond $_GET je te conseille vivement de lire des tutoriels en particulier sur les formulaires...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Par défaut ok ca marche mais
    Merci pour ton aide JWhite

    Merci pour ton aide ca fonction c'etait bien ce que tu avais dis.

    J'ai encore un petit problème ca fonctionne mais j'ai deux scripts séparé
    le 1er avec ma page web et
    le 2eme c'est l'essais
    comment faire pour joindre les deux

    voici le premier qui est ma page web:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    <?php
    $erreur_saisie= 0 ;
    $nom=  $_POST['nom'];
    $prenom=$_POST['prenom'];
     
     
     
    if(empty($nom)or empty($prenom))	//verifie si les champs obligatoire sont rempli
    {	$erreur_saisie= 1;
    	$erreur= "*";
    }	
    else //si tout les champs sont remplis en ecrit dans la base de donnée
    {
    echo "enregistrer dans mysql";
    echo $nom;
    exit();
    }
     
    if($erreur_saisie=1) //si un des champs n'est pas rempli on recharge le formulaire'
    {
    ?>
    <html>
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
    	<title>Gestion - Installation</title>
    	<link rel="stylesheet" type="text/css" href="design.css" /> <!-- Liens vers le feuillet de style CSS -->
    </head>
    <div id="en_tete">
    			<?php include "entete.php";?>
    	</div>
     
    <div id="corps">
    <form action="ajt_employe.php" method="post">
     
    	<div>
    	<table>
    		<tr>
    		<td id=cola><span class=tete>Nom<?php echo $erreur?></span></td>
    		<td id=colb><input type=texte name="nom" value="<?php echo $nom ?>"/></td>
    		<td id=colc><span class=tete>Prenom<?php echo $erreur?></span></td>
    		<td id=cold><input type=texte name="prenom" value="<?php echo $prenom ?>"/></td>
    		</tr>
    			<tr>
    		<td id=cola><span class=tete>Adresse</span></td>
    		<td id=colb><input type=texte name="adresse" /></td>
    		<td id=colc><span class=tete>N°</span></td>
    		<td id=cold><input type=texte name="numero_adresse" /></td>
    		</tr>
     
     
     
    			<tr>
    		<td id=cola><span class=tete>NPA</span></td>
    		<td id=colb><input type=texte name="npa" /></td>
    		<td id=colc><span class=tete>Lieu</span></td>
    		<td id=cold><input type=texte name="lieu" /></td>
    		</tr>
     
    			<tr>
    		<td id=cola><span class=tete>Tél.</span></td>
    		<td id=colb><input type=texte name="tel" /></td>
    		</tr>
     
    			<tr>
    		<td id=cola><span class=tete>Fax</span></td>
    		<td id=colb><input type=texte name="fax" /></td>
    		</tr>
     
    			<tr>
    		<td id=cola><span class=tete>Natel</span></td>
    		<td id=colb><input type=texte name="natel" /></td>
    		<td id=cola><span class=tete>Email</span></td>
    		<td id=colb><input type=texte name="email" /></td>	
    		</tr>
     
    			<tr>
    		<td id=cola><span class=tete>Date de naissance</span></td>
    		<td id=colb><input type=texte name="date_naiss" /></td>
    		<td id=colc><span class=tete>Numéro d'AVS</span></td>
    		<td id=cold><input type=texte name="numero_avs" /></td>
    		</tr>
     
    			<tr>
    		<td id=cola><span class=tete>Date d'engagement</span></td>
    		<td id=colb><input type=texte name="date_enga" /></td>
    		<td id=colc><span class=tete>N° d'employé</span></td>
    		<td id=cold><input type=texte name="num_empl" /></td>		
    		</tr>
     
    			<tr>
    		<td id=cola><span class=tete>Status</span></td>
    		<td id=colb><input type=texte name="statut" /></td>
    		<td id=colc><span class=tete>Nombres d'enfants</span></td>
    		<td id=cold><input type=texte name="nbre_enfant" /></td>		
    		</tr>
    					<tr>
    		<td><input type=submit class=bouton value="Ajouter" /></td>
    		</tr>
    	</table>
     
      <p>Les champs avec une * sont obligatoires</p>
     
    	</div>
    	</form>
    </div>	
     
    <?php
    }
    else
    {echo "erreur1001";}
    ?>
    et le 2eme

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <?php
    //Connexion à la base de données
    mysql_connect("localhost", "*****", "*****");
    mysql_select_db("gestion");
     
    //Recherche des numéros NPA
    $req_npa = mysql_query ("SELECT npa_id, npa_npa FROM lieu_tbl");
    ?>
    <form name="formulaire1" method="get" action="essais.php">
      <p><strong>Liste des numéros NPA </strong>
        <select name="lieu_tbl" onchange="formulaire1.btnsubmit.click();">
            <option selected value='0'>NPA</option>
            <?php
                //Chargement de la liste déroulante avec le resultat de la requête
                    while(list($npa_id, $npa_npa) = mysql_fetch_row($req_npa))
                    {
                            if ((isset($_GET['lieu_tbl'])) && ($npa_id==$_GET['lieu_tbl']))
                                    $sel = "selected";
                            else
                                    $sel = "";
     
                            echo "<option " . $sel . " value=\"$npa_id\">$npa_npa</option>\n";
                    }
            ?>
        </select>
            <?php
            mysql_free_result($req_npa);
            ?>
      </p>
      <p><strong>Liste des lieux</strong> 
        <select name="lieu">
            <option selected value='0'>Lieu</option>
            <?php
             if(isset($_GET['lieu_tbl']))
             {
                  $req_lieu = mysql_query ("SELECT npa_id,  npa_lieu FROM lieu_tbl WHERE npa_id =" . $_GET['lieu_tbl'] . " ORDER BY npa_lieu");
                  while(list($lieu_id, $npa_lieu) = mysql_fetch_row($req_lieu))
                          echo "<option value=\"$lieu_id\">$npa_lieu</option>\n";
             }
            ?>
        </select>
      </p>
        <p>
            <input name="btnsubmit" type="submit" id="btnsubmit" value="Envoyer"> 
            </p>
     
    </form>
    j'aimerai pouvoir remplacer l'input "npa" et "lieu" par le 2eme script

    Merci

  6. #6
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Avec un (des) include nan ?

Discussions similaires

  1. [MySQL] les apostrophe me cause un problème dans un formulaire
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 22/10/2005, 20h28
  2. Problème: condition sur formulaire dans requête
    Par decour dans le forum Access
    Réponses: 1
    Dernier message: 17/10/2005, 23h27
  3. Problème d'accès formulaire de contact
    Par Mystic26 dans le forum Langage
    Réponses: 7
    Dernier message: 16/09/2005, 16h47
  4. problème déplacement entre formulaire
    Par estancha dans le forum IHM
    Réponses: 6
    Dernier message: 07/10/2004, 15h22
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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