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 :

affichage d'une liste déroulante dynamique dans un formulaire


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Femme Profil pro
    étudiante
    Inscrit en
    Mai 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Mai 2014
    Messages : 19
    Points : 20
    Points
    20
    Par défaut affichage d'une liste déroulante dynamique dans un formulaire
    Bonsoir, je suis en train de développer une application avec PHP, j'ai utilisé un CRUD pour charger les données de la base de données dans un formulaire qui affiche 4 champs de la table "personnel" (name, surname, grade, service ) mais on va mettre à jour seulement le champs service qui doit contenir une liste déroulante des différents services qui peuvent être associés à une personne, cette liste est chargé à partir d'une autre table appelée (servicelog), mon problème est que la liste des services ne s'affiche pas dans la liste déroulante du formulaire, ci-dessous est mon code source

    le script affectation.php, qui se charge de charger les données de la base et l'afficher sous forme d'une table

    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
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <link   href="css/bootstrap.min.css" rel="stylesheet">
        <script src="js/bootstrap.min.js"></script>
    </head>
     
    <body>
        <div class="container">
     
    			<div class="row">
     
     
    				<table class="table table-striped table-bordered">
    		              <thead>
    		                <tr>
    		                  <th>Name</th>
    		                  <th>surname</th>
    		                  <th>grade</th>
    		                  <th>Affectation</th>
    		                </tr>
    		              </thead>
    		              <tbody>
    		              <?php 
    					   include 'database.php';
    					   $pdo = Database::connect();
    					   $sql = 'SELECT * FROM personnel ORDER BY id DESC';
    	 				   foreach ($pdo->query($sql) as $row) {
    						   		echo '<tr>';
    							   	echo '<td>'. $row['name'] . '</td>';
    							   	echo '<td>'. $row['surname'] . '</td>';
    							   	echo '<td>'. $row['grade'] . '</td>';
    							   	echo '<td width=250>';
     
    							   	echo '<a class="btn btn-success" href="update.php?id='.$row['id'].'">Update</a>';
    							   	echo '&nbsp;';
     
    							   	echo '</tr>';
    					   }
    					   Database::disconnect();
    					  ?>
    				      </tbody>
    	            </table>
        	</div>
        </div> <!-- /container -->
      </body>
    </html>

    le script responsable de la mise à jour du champs service : update.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
    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
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    <?php 
     
    	require 'database.php';
     
    	$id = null;
    	if ( !empty($_GET['id'])) {
    		$id = $_REQUEST['id'];
    	}
     
    	if ( null==$id ) {
    		header("Location: affectation.php");
    	}
     
    	if ( !empty($_POST)) {
    		// keep track validation errors
    		$nameError = null;
    		$surnameError = null;
    		$gradeError = null;
     
    		// keep track post values
    		$name = $_POST['name'];
    		$surname = $_POST['surname'];
    		$grade = $_POST['grade'];
     
    		// validate input
    		$valid = true;
    		if (empty($name)) {
    			$nameError = 'Please enter Name';
    			$valid = false;
    		}
     
    		if (empty($surname)) {
    			$surnameError = 'Please enter surname';
    			$valid = false;
    		}
     
    		if (empty($grade)) {
    			$gradeError = 'Please enter grade';
    			$valid = false;
    		}
     
    		// update data
    		if ($valid) {
    			$pdo = Database::connect();
    			$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    			$sql = "UPDATE personnel  set name = ?, surname = ?, grade = ?, servicelog = ?  WHERE id = ?";
    			$q = $pdo->prepare($sql);
    			$q->execute(array($name,$surname,$grade,$servicelog,$id));
    			Database::disconnect();
    			header("Location: affectation.php");
    		}
    	} else {
    		$pdo = Database::connect();
    		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    		$sql = "SELECT * FROM personnel where id = ?";
    		$q = $pdo->prepare($sql);
    		$q->execute(array($id));
    		$data = $q->fetch(PDO::FETCH_ASSOC);
    		$name = $data['name'];
    		$surname = $data['surname'];
    		$grade = $data['grade'];
    		$servicelog = $data['servicelog'];
    		Database::disconnect();
    	}
    ?>
     
     
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <link   href="css/bootstrap.min.css" rel="stylesheet">
        <script src="js/bootstrap.min.js"></script>
    </head>
     
    <body>
        <div class="container">
     
        			<div class="span10 offset1">
     
     
    	    			<form class="form-horizontal" action="update.php?id=<?php echo $id?>" method="post">
    					  <div class="control-group <?php echo !empty($nameError)?'error':'';?>">
    					    <label class="control-label">Name</label>
    					    <div class="controls">
    					      	<input readonly  name="name" type="text"  placeholder="Name" value="<?php echo !empty($name)?$name:'';?>">
    					      	<?php if (!empty($nameError)): ?>
    					      		<span class="help-inline"><?php echo $nameError;?></span>
    					      	<?php endif; ?>
    					    </div>
    					  </div>
    					  <div class="control-group <?php echo !empty($surnameError)?'error':'';?>">
    					    <label class="control-label">Surname</label>
    					    <div class="controls">
    					      	<input readonly name="surname" type="text" placeholder="Surname" value="<?php echo !empty($surname)?$surname:'';?>">
    					      	<?php if (!empty($surnameError)): ?>
    					      		<span class="help-inline"><?php echo $surnameError;?></span>
    					      	<?php endif;?>
    					    </div>
    					  </div>
    					  <div class="control-group <?php echo !empty($gradeError)?'error':'';?>">
    					    <label class="control-label">grade</label>
    					    <div class="controls">
    					      	<input readonly name="grade" type="text"  placeholder="grade" value="<?php echo !empty($grade)?$grade:'';?>">
    					      	<?php if (!empty($gradeError)): ?>
    					      		<span class="help-inline"><?php echo $gradeError;?></span>
    					      	<?php endif;?>
    					    </div>
    					  </div>
     
     
    					    <label class="control-label">Service</label>
    					    <div >
    				 <?php
    										echo '<select  size=1 name="servicelog" id="servicelog">'."\n";
    									echo '<option value="-1">--liste service --</option>'."\n";
    										$result = mysql_query("SELECT servicelog FROM servicelog ORDER BY id DESC" );
    										while($data =  mysql_fetch_array($result))
    											{
    												echo '<option value="'.$data[0].'">'.$data['servicelog'];
    												echo '</option>'."\n";
    											}
    												echo '</select>'."\n";
     
    						        ?>	
     
    					    </div>
     
    					  <div class="form-actions">
    						  <button type="submit" class="btn btn-success">تعيين</button>
    						  <a class="btn" href="affectation.php">رجوع</a>
    						</div>
    					</form>
    				</div>
     
        </div> <!-- /container -->
      </body>
    </html>
    svp, j'ai besoin d'aide le plutôt possible, merci

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Citation Envoyé par manelll Voir le message

    svp, j'ai besoin d'aide le plutôt possible, merci
    J'espère que j'arrive pas trop tard ?

    Ce qui est énervant, ce sont les personnes qui ont tout sous la main, mais qui malgré tout, vont rechercher des méthodes qui n'existe plus depuis pfffffffffffffff (mysql_).

    sinon un truc tout simple comme ceci, devrait être bon

    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
     
    <?php
    $pdo = Database::connect();
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "SELECT servicelog FROM servicelog ORDER BY id DESC";
    $q = $pdo->prepare($sql);
    $q->execute();
    $data = $q->fetchAll(PDO::FETCH_ASSOC);
    Database::disconnect();
    ?>
    <select  size=1 name="servicelog" id="servicelog">
    <option value="-1">--liste service --</option>
    <?php foreach($data as $value): ?>
    <option value="<?php echo $value['servicelog'] ?>"> <?php echo $value['servicelog'] ?></option>
    <?php endforeach; ?>
    </select>

  3. #3
    Membre à l'essai
    Femme Profil pro
    étudiante
    Inscrit en
    Mai 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Mai 2014
    Messages : 19
    Points : 20
    Points
    20
    Par défaut
    merci bien j'ai essyé le code et ça marche bien

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/06/2011, 15h13
  2. Réponses: 1
    Dernier message: 01/05/2010, 20h44
  3. Réponses: 4
    Dernier message: 23/04/2006, 21h27
  4. récupérer la valeur d'une liste déroulante dynamique
    Par grinder59 dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 23/01/2006, 17h51
  5. Pb d'affichage apres une liste déroulante
    Par loic.440 dans le forum ASP
    Réponses: 13
    Dernier message: 19/01/2005, 14h28

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