par
manelll » 04 juin 2015, 00:08
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
<!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
<?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
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
[php]<!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>[/php]
le script responsable de la mise à jour du champs service : update.php
[php]<?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>[/php]
SVP, j'ai besoin d'aide le plutôt possible, merci