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 :

formulaire PHP FOREACH SELECT


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    agent de sureté aeroportuaire
    Inscrit en
    Avril 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : agent de sureté aeroportuaire
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2019
    Messages : 4
    Points : 4
    Points
    4
    Par défaut formulaire PHP FOREACH SELECT
    bonjour je suis débutant dans la programmation et je n'arrive pas a faire mon formulaire.
    alors je vous montre mon code j'enleve ce que je pense qui fait que sa bloque.

    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
    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
     
    <?php
    if (!empty ($_GET['nom']))
    {
    echo $_GET['nom'].(' ');
    }
    if (!empty ($_GET['prenom']))
    {
    	echo $_GET['prenom'].('<br>');
    }
    if (!empty ($_GET['email']))
    {
    	echo $_GET['email'].('<br>');
    }
    if (!empty ($_GET['telephone']))
    {
    	echo $_GET['telephone'].('<br>');
    }
     
     
    $travels= array (
        0 => array ('departure' =>'paris ','arrival'=>'nantes ','departuretime'=>'11h00 ','arrivaltime'=>'12h34 ','driver'=>'thomas '),
        1 => array ('departure'=>'orleans ','arrival'=>'nantes ','departuretime'=>'05h15 ','arrivaltime'=>'09h32 ','driver'=>'mathieu '),
    	2 => array ('departure'=>'dublin ','arrival'=>'tours ','departuretime'=>'07h23 ','arrivaltime'=>'08h50 ','driver'=>'natanael '),
    	3 => array ('departure'=>'paris ','arrival'=>'orleans ','departuretime'=>'03h00 ','arrivaltime'=>'05h26 ','driver'=>'clement '),
    	4 => array ('departure'=>'paris ','arrival'=>'nice ','departuretime'=>'10h00 ','arrivaltime'=>'12h09 ','driver'=>'audrey '),
    	5 => array ('departure'=>'nice ','arrival'=>'nante ','departuretime'=>'10h40 ','arrivaltime'=>'13h00 ','driver'=>'pollux '),
    	6 => array ('departure'=>'nice ','arrival'=>'tours ','departuretime'=>'11:00 ','arrivaltime'=>'16h00 ','driver'=>'edouard '),
    	7 => array ('departure'=>'tours ','arrival'=>'amboise ','departuretime'=>'16h00 ','arrivaltime'=>'18h40 ','driver'=>'pricillia '),
    	8 => array ('departure'=>'nice ','arrival'=>'nantes ','departuretime'=>'12h00 ','arrivaltime'=>'16h00 ','driver'=>'charlotte ')
    	);
    if (isset ($_GET['travels']))
    	{	
    	echo $_GET['travels'];
    	}
    ?>
    <html>
    <head>
    <title>foreach dans un formulaire avec select</title>
    </head>
    <body>
    <form action="entrainement.php" method="get">
    <p><label for="nom"> Nom :</label>
    <input type="text" name="nom" id="nom"></p>
    <p><label for="nom"> prenom :</label>
    <input type="text" name="prenom" id="prenom">
    <p><label for="email"> email :</label>
    <input type="mail" name="email" id="email"></p>
    <p><label for="telephone">telephone :</label>
    <input type="tel" name="telephone" id="tel"></p>
    <select name="travels">
    <option value="paris">paris</option>
    <option value="orleans">orleans</option>
    <option value="dublin">dublin</option>
    <option value="nice">nice</option>
    <option value="tours">tours</option>
    </select>
    <input name="rechercher" type="submit" value="rechercher">
    </body>
    </html>
     
    </body>
    </html>
    voici le devoir au moment ou je bloque.
    Nom : Capture devoir.PNG
Affichages : 1905
Taille : 591,5 Ko
    pouvez vous me montrer comment faire en sorte que tout fonctionne?
    je m'excuse déjà si je m'y prend mal pour posé ma question je ne suis pas dutout habitué aux forums.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,


    1- D'abord, de préférence, on met les formulaires en method="post". (ça évite notamment d'"encombrer" l'URL inutilement...)
    Et si il mène à la même page, on peut omettre l'action.
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="" method="post">
    De plus, il manque </form> à la fin du formulaire.

    2- Ensuite, évidemment, on récupère les données avec $_POST (au lieu de $_GET)

    3- Enfin, si on a sélectionné une ville, on va parcourir l'array $travels et afficher les données trouvées si la ville correspond.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	if (isset ($_POST['travels']))
    	{	
    		echo '<p>ville choisie : '.$_POST['travels'].'</p>';
    		foreach( $travels as $travel )
    		{
    			if( trim($travel['departure']) == trim($_POST['travels']) )
    			{
    				echo '<p>départ de '.$travel['departure'].' à '.$travel['departuretime'].' - arrivée à '.$travel['arrival'].' à '.$travel['arrivaltime'].' - conducteur '.$travel['driver'].'</p>';
    			}
    		}
    	}
    Remarques:

    Remarque 1- j'ai dû ajouter trim(), car il y a des espaces en trop dans les noms de l'array $travels ('paris_', 'nantes_',...).
    OR, ces espaces NE sont PAS dans la RESSOURCE montrée (copie d'écran).

    Remarque 2- if( trim($travel['departure']) == ... ) : je n'est considéré ici QUE la ville "de départ".
    A toi de savoir s'il faut aussi considérer la "ville d'arrivée".


    Remarque 3- Et bien sûr, TOUS les affichages (echo ....) doivent se faire à l'intérieur de <body>, là où on veut que ça s'affiche.

  3. #3
    Candidat au Club
    Homme Profil pro
    agent de sureté aeroportuaire
    Inscrit en
    Avril 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : agent de sureté aeroportuaire
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2019
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    merci je vais tester sa de suite

  4. #4
    Candidat au Club
    Homme Profil pro
    agent de sureté aeroportuaire
    Inscrit en
    Avril 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : agent de sureté aeroportuaire
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2019
    Messages : 4
    Points : 4
    Points
    4
    Par défaut merci
    mille merci monsieur sa fonctionne a merveille jv essayer de bien comprendre ce que vous avez fait avec mes cours et l'assimilé merci vous m'avez été d'une grande aide.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Attention !

    Dans le <select>, les value des villes sont indiquées TOUT en minuscules : "paris",...

    Mais dans la copie d'écran, les villes ont une MAJUSCULE : "Paris",...

    Sur serveur, généralement, c'est "sensible à la casse".
    DONC, "paris" est DIFFÉRENT de "Paris" !

    Il faudrait donc remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( trim($travel['departure']) == trim($_POST['travels']) )
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( mb_strtolower(trim($travel['departure'])) == mb_strtolower(trim($_POST['travels'])) )
    Voir :



    mb_strtolower()
    Contrairement à strtolower(), le concept de caractère 'alphabétique' est déterminé par les propriétés Unicode.
    De ce fait, le comportement de cette fonction n'est pas modifié par les configurations locales, et elle peut convertir tout les caractères qui sont considérés comme alphabétiques comme le c cédille (ç).

  6. #6
    Candidat au Club
    Homme Profil pro
    agent de sureté aeroportuaire
    Inscrit en
    Avril 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : agent de sureté aeroportuaire
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2019
    Messages : 4
    Points : 4
    Points
    4
    Par défaut compris
    d'accord je pense comprendre mais vu que dans mes cours on en parle pas encore je vais plutôt essayer de réécrire mon code correctement afin de pouvoir le faire sans utiliser trim et le mot que vous me proposer. donc mettre les majuscules et enlever les espaces. j'espere ne pas me rebloquer.

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

Discussions similaires

  1. [MySQL] Selection dans un Formulaire php et Mysql
    Par neutrall dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 25/07/2012, 12h11
  2. [MySQL] Formulaire PHP ->MySQL
    Par shub dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 09/02/2010, 22h42
  3. [MySQL] Formulaire PHP et Select
    Par Layla dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/09/2008, 13h31
  4. Formulaire PHP+ envoi de fichier joint
    Par GraphicProvider dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 18h12
  5. [MySQL] Formulaire php + bdd = perte des sauts de ligne html ?
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/10/2005, 11h19

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