menu déroulant

Sujet vérouillé
mohaalba
le 11/03/2010 à 15:28
mohaalba
Bonjour,
j'ai un souci et je ne voit pourquoi.

je voudrais afficher sur une des colonnes un menu déroulant, et j'arrive à l'afficher mais je voudrais que la valeur initial soit ma valeur récuperer de la BDD.mais cela ne marche pas et me met tjrs la valeur: NEWS???
Aidez moi SVP en vous remerciant d'avance

<?php 

<?php
include_once ('verif_admin.php');
?>
<?php
session_start();
error_reporting(E_ALL);
/****************************/
require_once('../config.php');
require_once('../fonctions.php');
$titre_page='Mise à jour de commandes';
include_once('../haut_color.php');
echo'<link href="../style.css" rel="stylesheet" type="text/css" />';
/****************************/
//$pseudo=formulaires($_POST['pseudo']);
/****************************/
if(!empty($_POST['choix']))
{

foreach($_POST['choix'] as $val)
{
//pas faites encore
}

}
else
{
// Nous affichons notre tableau des commandes
echo'<form method="post" action="etat_commande.php">';
$entete = array('Client','N° Commande','Date commande','Fichier','Q','Etat','Date livraison','Expédition');
echo'<div align="center" ><p><strong>Liste de des clients enregistées - Mettre à jour de l\'état des commandes</strong></p><br /><br />';
echo'<table width="1150" height="40" border="1" align="center" bgcolor=#FF0000>
<colgroup>
<col style="width: 150px">
<col style="width: 120px">
<col style="width: 100px">
<col style="width: 200px">
<col style="width: 60px">
<col style="width: 200px">
<col style="width: 100px">
<col style="width: 220px">
</colgroup>
<tr>
<th scope="col">'.$entete[0].'</th>
<th scope="col">'.$entete[1].'</th>
<th scope="col">'.$entete[2].'</th>
<th scope="col">'.$entete[3].'</th>
<th scope="col">'.$entete[4].'</th>
<th scope="col">'.$entete[5].'</th>
<th scope="col">'.$entete[6].'</th>
<th scope="col">'.$entete[7].'</th>
</tr>
</table>';
$result = mysql_query("SELECT nom, prenom,ref_com, date_com, fichier_com, Q, etat, date_livraison, expedition FROM commandes ORDER BY id_c DESC") or die ('Impossible de s&eacute;lectionner une base de donn&eacute;e.'.mysql_error());

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
/****Modification de la date : Américan vers Europe**********/
$date_comm = $row[3];
$date_liv = $row[7];
$date_comm = preg_replace('!^([0-9]{4})+-([0-9]{2})+-([0-9]{2})$!', '$3/$2/$1', $date_comm); #Modifiation de la date
$date_liv = preg_replace('!^([0-9]{4})+-([0-9]{2})+-([0-9]{2})$!', '$3/$2/$1', $date_liv); #Modifiation de la date
$row[3] = $date_comm ;
$row[7] = $date_liv ;
/***************************************************************/
echo'<table width="1150" height="40" border="1" align="center" >
<colgroup>
<col style="width: 150px">
<col style="width: 120px">
<col style="width: 100px">
<col style="width: 200px">
<col style="width: 60px">
<col style="width: 200px">
<col style="width: 100px">
<col style="width: 220px">
</colgroup>
<tr>
<th scope="col" >'.$row[1].' '.$row[0].'</th>
<th scope="col" >'.$row[2].'</th>
<th scope="col" >'.$row[3].'</th>
<th scope="col" >'.$row[4].'</th>
<th scope="col" >'.$row[5].'</th>
<th scope="col" >'.$row[6].'
<form name="form1" method="post" action="">
<label>
<select name="select" value="'.$row[6].'">
<option>NEWS</option>
<option>EN COURS</option>
<option>EXPEDITION</option>
<option>TERMINEE</option>
</select>
</label>
</form>
</th>
<th scope="col" >'.$row[7].'</th>
<th scope="col" >'.$row[8].'</th>
</tr>
</table>';

//printf("ID : %s Nom : %s", $row[0], $row[1]);

}
echo'<br/><label><input type="submit" value="Mettre à jour" /></label></form>';
}

/*if (isset($_POST['checkbox'])){

for ($i = 0, $c = count($_POST['checkbox']); $i < $c; $i++) { echo '<br/><b>' .$_POST['checkbox'][$i]. '</b>'; }
}

$tab_quand = $_POST['checkbox']; //$tab_quand est un tableau, attention !!!!
foreach($tab_quand as $checkbox)
{
echo $checkbox.' ';
}*/




?>
<html>
<head>
<title>xxxxx : Mise à jour de commandes</title>
<link href="../style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
p {
color:red;
}
-->
</style>
</head>

<body>
<div align="center"><a href="http://xxxx/xxxxx/membre_admin.php"> Retour</a></div>

<?php
include_once('../bas.php');
?>

?>
Amery
le 11/03/2010 à 15:51
Amery
1. Ta syntaxe pour le select est fausse. Tu dois indiquer pour chaque choix la valeur à lui donner.

<select name="etat">
<option value="NEWS">NEWS</option>
<option value="EN COURS">EN COURS</option>
<option value="EXPEDITION">EXPEDITION</option>
<option value="TERMINEE">TERMINEE</option>
</select>


2. si tu veux que l'état en cours sont sélectionnés par défaut, tu dois ajouter selected="selected" dans la balise <option>. Par exemple, pour sélectionner "News"

<option value="NEWS" selected="selected">NEWS</option>


3. Donc, finalement pour rendre tout ça dynamique en php, tu peux utiliser la fonction foreach pour comparer la valeur de ton $row[6] avec toutes les valeurs de ton select possibles. Si la valeur $row[6]="NEWS" (par exemple), tu fais :

<?php
echo 'selected="selected"';
?>

dans la balise <option value="NEWS">

En cherchant un peu, tu trouveras des fonctions déjà écrites qui font ce que tu veux, mais c'est plus marrant de trouver la solution soi-même! smiley
mohaalba
le 11/03/2010 à 16:30
mohaalba
je vous remercie bcp pour votre réponse.
mais qqchse que je ne comprend pas:
pour initialisé la valeur du menu on peut faire ça:
<?php <select name="menu" value="'.$row[6].'"> ?>


je l'ai fait mais ça ne marche pas??!!!!!!!!
LA GLOBULE
le 11/03/2010 à 18:17
LA GLOBULE
Amery t'a donné la solution, le value se met sur les options, pas le select.
mohaalba
le 12/03/2010 à 09:47
mohaalba
je vous remercie j'ai résolu ce problème mais un autre problème!

Voila j'ai un problème dans mon code php je suis sure que c'est tout bete mais je ne comprend pas;
j'ai un tableau dans lequel j'ai une colonne que je peux mettre à jour, mon problème c'est que quand je coche une seul ligne et donc à mettre à jours dans la BDD il me met toutes la colonne à la même valeur!!!!?
(je croix que c'est parce qu'il faut récuperer 2 valeurs:l'ID et l'état mai je sais pas comment récuperer 2 valaur dans value????)
je ne voit pas comment faire surtout que je suis débutant.
Aidez moi SVP en vous remerciant d'abord.
voila mon code:
<?php
include_once ('verif_admin.php');
?>
<?php
session_start();
error_reporting(E_ALL);
/****************************/
require_once('../config.php');
require_once('../fonctions.php');
$titre_page='Mise à jour de commandes';
include_once('../haut.php');
echo'<link href="../style.css" rel="stylesheet" type="text/css" />';
/****************************/
//$pseudo=formulaires($_POST['pseudo']);
/****************************/
if(!empty($_POST['etat_chek']))

{

//echo $etat_chek,'<br />';
foreach($_POST['etat_chek'] as $val)
{
//echo $val,'<br />';
/*"UPDATE membres SET level='registered' WHERE cle_activation ='$cle_activation' AND level='en_attente'"*/
mysql_query("UPDATE commandes SET etat='$val' WHERE pseudo='$val'") or die ('Impossible de sélectionner une base
de donnée.'.mysql_error());
echo'<div align="center" ><r><strong>L\'état de commande "'.$val.'" à été bien met à jour</strong></r><br />';
}


}
else
{
// Nous affichons notre tableau des commandes
echo'<form method="post" action="etat_commande.php">';
$entete = array('Client','N° Commande','Date commande','Fichier','Q','Etat','Date livraison','Expédition');
echo'<div align="center" ><r><strong>Liste des clients enregistées - Mettre à jour de l\'état des commandes</strong></r><br />';
echo'<table width="1150" height="40" border="1" align="center" bgcolor=#FF0000>
<colgroup>
<col style="width: 150px">
<col style="width: 120px">
<col style="width: 100px">
<col style="width: 200px">
<col style="width: 60px">
<col style="width: 200px">
<col style="width: 100px">
<col style="width: 220px">
</colgroup>
<tr>
<th scope="col">'.$entete[0].'</th>
<th scope="col">'.$entete[1].'</th>
<th scope="col">'.$entete[2].'</th>
<th scope="col">'.$entete[3].'</th>
<th scope="col">'.$entete[4].'</th>
<th scope="col">'.$entete[5].'</th>
<th scope="col">'.$entete[6].'</th>
<th scope="col">'.$entete[7].'</th>
</tr>
</table>';
$result = mysql_query("SELECT nom, prenom,ref_com, date_com, fichier_com, Q, etat, date_livraison, expedition,pseudo_com FROM commandes ORDER BY id_c DESC") or die ('Impossible de sélectionner une base de donnée.'.mysql_error());

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
/****Modification de la date : Américan vers Europe**********/
$date_comm = $row[3];
$date_liv = $row[7];
$date_comm = preg_replace('!^([0-9]{4})+-([0-9]{2})+-([0-9]{2})$!', '$3/$2/$1', $date_comm); #Modifiation de la date
$date_liv = preg_replace('!^([0-9]{4})+-([0-9]{2})+-([0-9]{2})$!', '$3/$2/$1', $date_liv); #Modifiation de la date
$row[3] = $date_comm ;
$row[7] = $date_liv ;
/***************************************************************/
echo'<table width="1150" height="40" border="1" align="center" >
<colgroup>
<col style="width: 150px">
<col style="width: 120px">
<col style="width: 100px">
<col style="width: 200px">
<col style="width: 60px">
<col style="width: 200px">
<col style="width: 100px">
<col style="width: 220px">
</colgroup>
<tr>
<th scope="col" ><b>'.$row[1].' '.$row[0].'</b></th>
<th scope="col" >'.$row[2].'</th>
<th scope="col" >'.$row[3].'</th>
<th scope="col" >'.$row[4].'</th>
<th scope="col" >'.$row[5].'</th>
<th scope="col" ><b>'.$row[6].'</b>

<p>
<label>
<input type="checkbox" name="etat_chek[]" value="NEWS" />
NEW</label>
<label>
<input type="checkbox" name="etat_chek[]" value="EN COURS" />
ENC</label>
<br/>
<label>
<input type="checkbox" name="etat_chek[]" value="EXPEDITION" />
EXP</label>
<label>
<input type="checkbox" name="etat_chek[]" value="TERMINEE" />
TER</label>
</p>
</form>
</th>
<th scope="col" >'.$row[7].'</th>
<th scope="col" >'.$row[8].'</th>
</tr>
</table>';

//printf("ID : %s Nom : %s", $row[0], $row[1]);

}
echo'<br/><label><input type="submit" value="Mettre à jour" /></label></form>';
}

/*if (isset($_POST['checkbox'])){

for ($i = 0, $c = count($_POST['checkbox']); $i < $c; $i++) { echo '<br/><b>' .$_POST['checkbox'][$i]. '</b>'; }
}

$tab_quand = $_POST['checkbox']; //$tab_quand est un tableau, attention !!!!
foreach($tab_quand as $checkbox)
{
echo $checkbox.' ';
}*/




?>
<html>
<head>
<title>xxxxx : Mise à jour de commandes</title>
<link href="../style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
r {
color:red;
}
b {
color:blue;
}
-->
</style>
</head>

<body>
<div align="center"><a href="http://xxxx/xxxx_admin/membre_admin.php"> Retour</a></div>
<?php
include_once('../bas.php');
?>
Sujet vérouillé

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours