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 :

Variables Post et liste déroulante dynamique


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 25
    Par défaut Variables Post et liste déroulante dynamique
    Bonjour la famille
    j'ai un souci de variable lors de l'insertion des données dans la base de données.
    En fait, j'ai lié deux listes déroulantes (grâce à un open source ajax que j'ai piqué sur internet) dans mon formulaire de telle manière que en cliquant sur une option de la première liste déroulante , la deuxième liste déroulante qui est située dans un fichier "traitement.php" apparait ( grâce à l'outil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include("traitement.php")
    ).
    Le pb c'est que lorsque j'envoie les données dans la bdd, une erreur me disant que la variable de la deuxieme liste deroulante n'existe pas.
    Je ne sais pas quoi faire.
    Voici mon code;
    Formulaire:
    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
    <?php
    	session_start();
    	include("nav.php");
    ?>
    <html>
    	<head>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	<meta http-equiv="Content-Language" content="fr" />
    	<script type="text/javascript" src="fonctions.js"></script>
    	<link rel="stylesheet" href="entree_style.css"/>
    	</head>
    <article>
    <br/><span class="bonjour">Bonjour monsieur <?php echo $_SESSION['pseudo'];?></span>
    <h2>ENREGISTRER UNE ENTREE</h2>
    <form method="post" action="entree.php"/>
    	<div id="colonne">
    	<p><label for="bc">Numero bon de commande</label>
    	<br/><input type="text" id="bc" name="bc" required/></p>
    	<p><label for="sous_famill">Sous-famille</label>
    	<br/><select name="sous_famill" id="sous_famill" onchange="designation(this.value);" >
    	<option value="vide">-  Choisissez une sous-famille - </option>
    	<?php
    	include ("connection.php");
    	$var=0;
    	$reponse = $bdd ->query('SELECT * FROM codification WHERE Type = \'piece de rechange\'');
    	 while($donnees = $reponse ->fetch())
    	 {
     
    		$var = $donnees['Sous-famille'];
     
    		?>
    		<option value ="<?php echo $var;?>"> <?php echo $var;?> </option> 
    	<?php
    	}
    		?>
    	<?php
    	$reponse-> closecursor();
    	?>
    		</select></P>
    	<p><label for ="ref_entree">Reference</label>
    	<br/><input type="text" id="ref_entree" name="ref_entree"/></p>
    	<p><label for="date_entr">Date entree</label>
    	<br/><input type="date" id="date_entr" name="date_entr" required/></p>
    	<p><label for="qt_entr">Quantite</label>
    	<br/><input type="number" id="qt_entr" name="qt_entr" min="0" required/></p>
    	</div>
    	<div id="colonne2">
    	<p><label for="empl_entree">Emplacement magasin</label>
    	<br/><input type="text" id="empl_entree" name="empl_entree" required /></p>
    	<p><label for="repere">Repere equipement</label>
    	<br/><input type="text" id="repere" name="repere"/></p>
    	<p><label for="famille_equi">Famille equipement</label>
    	<br/><input type="text" id="famille_equi" name="famille_equi"/></p>
    	<p><label for="prix">Prix d'achat</label>
    	<br/><input type="number" id="prix" name="prix" value="0" required/></p>
    	<p><input type="submit" value="enregistrer" name="enregistrer_entree"/></p>
    	</div>
    	</article>
    	<div id="Blocdesignation">
     
    <?php
    		if(isset($_POST['sous_famill'])){
    //on créer une variable utilisé dans la page "traitement2.php"
    $include = 1;
    //on inclue la page
    include('traitement.php');
    }
    ?></div>
     
    	<div id="modifier"><a href="modif_entree.php">modifier une entree </a></div>
    	<div id="retour"><a href="pdr.php">page d'acceuil</a></div>
    	<div id="produit"><a href="nouveau_produit">Enregistrer un nouveau produit</a></div>
    	<div id="consulter_entree"><a href="consulter_entree.php">Consulter les entrees</a></div>
    </form>
    <?php
     
    include("connection.php");
    if(isset($_POST['enregistrer_entree'])) 
    {
     
    		$req = $bdd -> prepare("INSERT INTO entree(Designation_entree, Reference_entree, Repere_entree, Famille_equip_entree, Date_entree, Qte_entree, Sous_famille_entree, Prix_achat, Num_BC, Emplacement_entree) VALUES(:dese, :re, :repe, :fee, :de, :qe, :sfe, :pa, :nmc, :ee)");
    			$req -> execute(array(
    			'dese' => $_SESSION['designation'],
    			're' =>	$_POST['ref_entree'],
    			'repe' => $_POST['repere'],
    			'fee' => $_POST['famille_equi'],
    			'de' => $_POST['date_entr'],
    			'qe' =>  $_POST['qt_entr'],
    			'sfe' => $_POST['sous_famill'],
    			'pa' => $_POST['prix'],
    			'nmc' => $_POST['bc'],
    			'ee' =>  $_POST['empl_entree']
    		));
    }
    ?>
    Page traitement.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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <!DOCTYPE HTML>
    <head> <meta charset="utf-8" /></head>
    <?php
    //Numéro de la région
    if(isset($_POST["sous_famill"]) && $_POST["sous_famill"] != 'vide'){
    /*Si la variable $include n'existe pas c'est que le numéro de la région passe par AJAX. On a donc besoin d'avoir une connexion avec la base de données.*/
    /*Quand on poste le formulaire, cette page est inclue directement dans le div "blocDepartements", donc la connexion est inutile.*/
    /*Si on inlcue cette page au moment de la validation, c'est uniquement pour garder la sélection "selected" de la liste.*/
    if(!isset($include)){
    //On indique le Content-Type utilisé
    header('Content-Type: text/html; charset="iso-8859-1"');
     
    include("connection.php");
     
    }
     
    ?>
    	<p><label>Designation de l'article : </label>
     <br/><select name="designation" id="designation">
    <option value="vide">- - Choisissez une designation - - </option>
     
     
    <?php
    $variable = $_POST['designation'];
    $var=0;
    //On sélectionne les départements en fonction du numéro de la région
    $reponse1 = $bdd -> query('SELECT * FROM pdr ORDER BY Designation_pdr');
    //On boucle
    while($donnees1 = $reponse1 ->fetch())
    {
    	if($donnees1['Sous-famille_pdr'] == $_POST['sous_famill'])
    	{
    		$var= $donnees1['Designation_pdr'];
    	?>
    	<option value ="<?php echo $var;?>"> <?php echo $var;?> </option>
    	<?php
    	}
    	?>
    <?php
    }
    ?>
    <?php
    $reponse1-> closecursor(); 
    ?>
    </select></p>
    <?php
    }
    ?>
    En restant dans l'attente d'une réponse
    Bien cordialement

  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
    Pourquoi tu as $_SESSION['designation'] ?

    De plus dans ton deuxième code il ne devrait pas y avoir d'en-tête HTML, uniquement la liste déroulante.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 25
    Par défaut
    En effet j'au essaye une fois de mettre le code html dans le formulaire mais le code ne marchais pas. Je vais encore reessayer.
    Par contre le $_SESSION c'est une erreur ca n'a pas sa place
    Cordialement
    Zoleko

Discussions similaires

  1. [MySQL] Récupération valeur variable spécifique de liste déroulante dynamique
    Par stefsas dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/02/2010, 18h46
  2. Liste déroulante dynamique
    Par Screw16 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/10/2005, 20h37
  3. [HTML] liste déroulante dynamique
    Par lacousinee dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/08/2005, 20h51
  4. Liste déroulante dynamique ?
    Par Regis.C dans le forum Composants
    Réponses: 5
    Dernier message: 29/06/2005, 12h09
  5. [FORMULAIRE] Liste déroulante dynamique
    Par bchristo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/01/2005, 10h07

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