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
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 ' ';
echo '</tr>';
}
Database::disconnect();
?>
</tbody>
</table>
</div>
</div> <!-- /container -->
</body>
</html> |
le script responsable de la mise à jour du champs service : update.php
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
Partager