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

Langage PHP Discussion :

[PHP-JS] Renvoi de valeur d'une zone de liste


Sujet :

Langage PHP

  1. #1
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut [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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($_POST['Jour']=="jourvide") {
    		$erreurs[] = 'Le champ <b>Jour</b> est vide';
    	}
    au lieu de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Points : 730
    Points
    730
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<OPTION value=\"<? $i ?>\">$i</OPTION>";
    Ta construction est étrange.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<OPTION value=\"". $i ."\">".$i."</OPTION>";
    Sinon pour les traitements je peux te suggérer d'utiliser javascript, c'est plus simple de tester les champs et de les envoyer une fois tout ceux-ci remplie que de valider tester les valeurs et renvoyer sur la page précédente pour redemander des informations. Ca fait des va et viens lourd pour l'utilisateur et surement compliqué pour toi.

  3. #3
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Citation Envoyé par grabriel
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<OPTION value=\"<? $i ?>\">$i</OPTION>";
    Ta construction est étrange.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<OPTION value=\"". $i ."\">".$i."</OPTION>";
    Sinon pour les traitements je peux te suggérer d'utiliser javascript, c'est plus simple de tester les champs et de les envoyer une fois tout ceux-ci remplie que de valider tester les valeurs et renvoyer sur la page précédente pour redemander des informations. Ca fait des va et viens lourd pour l'utilisateur et surement compliqué pour toi.
    Tiens c'est bizarre j'ai écrit ton echo et ça m'a corrigé le problème j'arrive pas trop a savoir pourquoi, mais merci beaucoup

    Sinon pour le javascript, on me l'avais déja proposé, mais n'y connaissant rien en javascript, je sais pas si je pourrait m'orienter vers cette option

  4. #4
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Points : 730
    Points
    730
    Par défaut
    Tiens c'est bizarre j'ai écrit ton echo et ça m'a corrigé le problème
    Ta balise php est déja ouvert et tu en ouvre une autre à l'intérieur donc php doit mal interpréter et donc renvoie une erreur... je dis ca mais j'en sais rien je n'ai jamais ouvert des balises php dans des balises déjà ouverte... Pour éviter ce problème ouvre tes balises en début de fichier et ferme à la fin et met tout ton texte à afficher avec des echo " ";


    Sinon pour le javascript, on me l'avais déja proposé, mais n'y connaissant rien en javascript, je sais pas si je pourrait m'orienter vers cette option
    Tu peux déjà t'orienter vers le forum javascript tu y trouvera des tuto, des faq et de l'aide... si tu es capable de faire du php tu dois pouvoir faire du javascript. C'est pas plus compliqué.

    Bon courage!!!

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 02/01/2007, 13h49
  2. Enlever une valeur dans une zone de liste
    Par léti07 dans le forum Access
    Réponses: 20
    Dernier message: 23/09/2006, 06h19
  3. Récup de valeurs dans une zone de liste
    Par Miss Ti dans le forum Access
    Réponses: 4
    Dernier message: 03/08/2006, 15h46
  4. Réponses: 2
    Dernier message: 08/06/2006, 13h38
  5. Réponses: 2
    Dernier message: 12/04/2006, 10h00

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