Problème boucle foreach OU je ne choisi pas la bonne option

Fermé
eleveDavid Messages postés 1 Date d'inscription jeudi 8 décembre 2022 Statut Membre Dernière intervention 8 décembre 2022 - 8 déc. 2022 à 20:55
jordane45 Messages postés 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 - 8 déc. 2022 à 21:38

bonjour,

j'essai de récupérer certaines informations d'un tableau en fonction de l'élément ville de départ remplis dans un formulaire .

le choix du GET est uniquement pour voir les éléments dans URL

mais toutes les villes d'arrivées s'affiche . comment dois-je faire (j'ai déjà essayé plusieurs solution mais sans succès)

 <form action="index.php" method="get">

        <input type="text" name="nom" maxlength="15" placeholder="Votre nom">

        <input type="email" name="email" maxlength="25" placeholder="Votre adresse email">

        <input type="tel" name="tel" minlength="10" maxlength="10" placeholder="Votre tél. 10 chiffres maxi">

        Ville de départ :

        <select name="depart">

            <option value="Paris">Paris</option>

            <option value="Orléans">Orléans</option>

            <option value="Dublin">Dublin</option>

            <option value="Nice">Nice</option>

            <option value="Tours">Tours</option>

        </select>

        <input type="submit" name="valider" value="Valider">

    </form>

    <?php

    if(isset($_GET["valider"])){

        if (

            (empty($_GET["nom"]))

            or

            (empty($_GET["email"]))

            or

            (empty($_GET["tel"]))

        ) {

            echo "Tous les champs du formulaire ne sont pas complétés";

        }}

    $travels = [

        ['departure' => 'Paris', 'arrival' => 'Nantes', 'departureTime' => '11:00', 'arrivalTime' => '12:34', 'driver' => 'Thomas'],

        ['departure' => 'Orléans', 'arrival' => 'Nantes', 'departureTime' => '05:15', 'arrivalTime' => '09:32', 'driver' => 'Mathieu'],

        ['departure' => 'Dublin', 'arrival' => 'Tours', 'departureTime' => '07:23', 'arrivalTime' => '08:50', 'driver' => 'Nathanaël'],

        ['departure' => 'Paris', 'arrival' => 'Orléans', 'departureTime' => '03:00', 'arrivalTime' => '05:26', 'driver' => 'Clément'],

        ['departure' => 'Paris', 'arrival' => 'Nice', 'departureTime' => '10:00', 'arrivalTime' => '12:09', 'driver' => 'Audrey'],

        ['departure' => 'Nice', 'arrival' => 'Nantes', 'departureTime' => '10:40', 'arrivalTime' => '13:00', 'driver' => 'Pollux'],

        ['departure' => 'Nice', 'arrival' => 'Tours', 'departureTime' => '11:00', 'arrivalTime' => '16:10', 'driver' => 'Edouard'],

        ['departure' => 'Tours', 'arrival' => 'Amboise', 'departureTime' => '16:00', 'arrivalTime' => '18:40', 'driver' => 'Priscilla'],

        ['departure' => 'Nice', 'arrival' => 'Nantes', 'departureTime' => '12:00', 'arrivalTime' => '16:00', 'driver' => 'Charlotte'],

    ];

            $travel = $_GET["depart"];

            foreach ($travels as $key => $travel) {

            echo $travel ["arrival"];

        }

    ?>

A voir également:

1 réponse

jordane45 Messages postés 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 4 657
8 déc. 2022 à 21:38

bonjour,

<?php
//récupération PROPRE des variables AVANT de les utiliser
// pour ça, j'utilise l'écriture TERNAIRE ( sorte de IF/ELSE )
$nom = !empty($_GET['nom'] ) ? $_GET['nom'] : NULL;
$email = !empty($_GET['email'] ) ? $_GET['email'] : NULL;
$tel = !empty($_GET['tel'] ) ? $_GET['tel'] : NULL;
$depart = !empty($_GET['depart'] ) ? $_GET['depart'] : NULL;
  
if(isset($_GET["valider"])){
  if ( !$nom  || !$email|| !$tel ) {
      echo "Tous les champs du formulaire ne sont pas complétés";
  } else {
    
    $travels = [
        ['departure' => 'Paris', 'arrival' => 'Nantes', 'departureTime' => '11:00', 'arrivalTime' => '12:34', 'driver' => 'Thomas'],
        ['departure' => 'Orléans', 'arrival' => 'Nantes', 'departureTime' => '05:15', 'arrivalTime' => '09:32', 'driver' => 'Mathieu'],
        ['departure' => 'Dublin', 'arrival' => 'Tours', 'departureTime' => '07:23', 'arrivalTime' => '08:50', 'driver' => 'Nathanaël'],
        ['departure' => 'Paris', 'arrival' => 'Orléans', 'departureTime' => '03:00', 'arrivalTime' => '05:26', 'driver' => 'Clément'],
        ['departure' => 'Paris', 'arrival' => 'Nice', 'departureTime' => '10:00', 'arrivalTime' => '12:09', 'driver' => 'Audrey'],
        ['departure' => 'Nice', 'arrival' => 'Nantes', 'departureTime' => '10:40', 'arrivalTime' => '13:00', 'driver' => 'Pollux'],
        ['departure' => 'Nice', 'arrival' => 'Tours', 'departureTime' => '11:00', 'arrivalTime' => '16:10', 'driver' => 'Edouard'],
        ['departure' => 'Tours', 'arrival' => 'Amboise', 'departureTime' => '16:00', 'arrivalTime' => '18:40', 'driver' => 'Priscilla'],
        ['departure' => 'Nice', 'arrival' => 'Nantes', 'departureTime' => '12:00', 'arrivalTime' => '16:00', 'driver' => 'Charlotte'],
    ];

    $ids = array_keys(array_combine(array_keys($travels), array_column($travels, 'departure')),$depart);

  }
}
?>

 
 
 <form action="index.php" method="get">
    <input type="text" name="nom" maxlength="15" placeholder="Votre nom" value="<?php echo $nom;?>">
    <input type="email" name="email" maxlength="25" placeholder="Votre adresse email">
    <input type="tel" name="tel" minlength="10" maxlength="10" placeholder="Votre tél. 10 chiffres maxi">
    Ville de départ :
    <select name="depart">
        <option value="Paris">Paris</option>
        <option value="Orléans">Orléans</option>
        <option value="Dublin">Dublin</option>
        <option value="Nice">Nice</option>
        <option value="Tours">Tours</option>
    </select>
    <input type="submit" name="valider" value="Valider">
</form>
<div>
  
  <?php
    if(!empty($ids)){
      echo "<span>Résultats:</span>";
      foreach($ids as $id ){
        echo "<pre>";
        print_r($travels[$id] ); // a toi de voir ce que tu veux faire du résultat...
        echo "</pre>";
      }
    }
  ?>
</div>
   

0