[PHP-JS] Renvoi de valeur d'une zone de liste
Bonjour,
j'ai un petit souci : dans un formulaire, j'ai des champs obligatoires et non obligatoires (champs textes, zone de liste,...)
Dont voici l'extrait pour les zones de liste :
Code:
1 2 3 4 5 6
| <SELECT name="Jour">
<OPTION value="jourvide" selected="selected"></OPTION>
<? for($i=1;$i<=31;$i++){
echo "<OPTION value=\"<? $i ?>\">$i</OPTION>";
} ?>
</SELECT> |
Comme vous devez vous en douter, j'ai 3 zones de listes du meme type, avec le mois et l'année :)
Pour le récupérer et voir apparaitre le résultat, je fais ça :
Code:
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
| if (isset($_POST['test'])){
$erreurs=array();
if (empty($_POST['NomProjet'])) {
$erreurs[] = 'Le champ <b>Nom du Projet</b> est vide';
}if ($_POST['Jour']=="jourvide") {
$erreurs[] = 'Le champ <b>Jour</b> est vide';
}if ($_POST['Mois']=="moisvide") {
$erreurs[] = 'Le champ <b>Mois</b> est vide';
}if ($_POST['Annee']=="anneevide") {
$erreurs[] = 'Le champ <b>Annee</b> est vide';
}if (empty($_POST['Responsables'])) {
$erreurs[] = 'Aucun <b>Responsable</b> n\'est sélectionné';
}if (empty($_POST['Participants'])) {
$erreurs[] = 'Aucun <b>Participant</b> n\'est sélectionné';
}
if (count($erreurs) > 0) {
echo 'Les erreurs suivantes ont été rencontrées :';
echo '<ul>';
foreach ($erreurs as $e) {
echo '<li>' . $e . '</li>';
}
echo '</ul>';
} else {
echo $_POST['NomProjet'];
echo $_POST['Jour'];
echo $_POST['Mois'];
echo $_POST['Annee'];
echo $_POST['Responsables'][0];
echo $_POST['Participants'][0]; |
Ceci est le bout de code où je fais apparaitre ce qu eje veux voir (c'est pour faire untest en fait.
Le truc est que NomProjet Responsables et Participants s'affichent bien, quand ils sont remplis, mais le jour et le mois ne s'affichent pas, et j'arrive pas a savoir pourquoi.
Juste pour indication, j'ai mis ça :
Code:
1 2 3
| if ($_POST['Jour']=="jourvide") {
$erreurs[] = 'Le champ <b>Jour</b> est vide';
} |
au lieu de ça :
Code:
1 2 3
| if ($_POST['Jour']=="") {
$erreurs[] = 'Le champ <b>Jour</b> est vide';
} |
car sinon le champ jour (vu qu'il est obligatoire) n'est pas pris en compte et il ne le voit pas vide pour la deuxième option, mais pour la première oui il le voit. Je pense que c'est parce qu ej'ai appelé le premier champ sélectionné "jourvide" et qu'il es tpas égal..
Bref, est-ce que quelqu'un aurait une idée du pourquoi que quan dje choisit un jour dans ma zone de liste, elle ne s'affiche pas et donc m'affiche rien ? j'ai oublié quelquechose dans mon code ?
Merci beaucoup pour votre aide :) par avance :)
Cordialement.