<body>

<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" value="Valider">
</form>

<?php
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'];   

}

?> 

</body>

</html>

Ce que je veux

lorsque je selectionne une ville via le formulaire les villes d'arrivée doient s'afficher

Ce que j'obtiens

toutes les villes s'affiches

11 réponses


$travel va être écrasé par la boucle

ensuite dans le boucle je ferrais une comparaison entre le résultat du forumaire et le départ du tableau. Suivant le résultat, j'affiche ou non les données

j'ai rajouté un if mais maintenant plus rien s'affiche !!
'
$travel = $_GET['depart'];
foreach ($travels as $key => $travel){
if(['departure'] == $travel){
echo $travel['arrival'];
}

}
'

$travel d'avant boucle n'esxiste plus dans la boucle car il est écrasé.

voici mon code commenté dit moi ce qu'il manque
'
$travel = $_GET['depart']; //récupération de la valeur choisi dans le formulaire que j'affecte à la variable $travel
foreach ($travels as $key =>$travel){ //pour chaque clef du tableau (la variable $travel) = $travel

            echo $travel['arrival']; // imprime pour la valeur de $travel la valeur de la clef arrival
        }    
        '

question bête, le problème ne peut pas venir de ma configuration de VSCode ou de wampserver même si tout est au vert.
je doute car les autres boucles fonctionnent

non. tu vas écraser la valeur de $travel avec ta boucle. tu n'as donc plus la récupération du départ par le formulaire.
fais un var_dump de $travel dans la boucle et tu verras ce qu'il

j'ai essayé dans tout les sens en rajouter des condition rien à faire. Je ne vois vraiment pas comment faire. si quelqu'un veux bien m'aidé !!

ah bon, puisque je ne t'aide pas.
bonne continuation

c'est une erreur d'inteprétation désolé si je me suis mal exprimé.
j'ai tout essayé enfin ce que je connais et je suis sec !!
je ne vois pas comment faire

if (isset($_GET['depart']) {
    $depart = $_GET['depart']; // je change de nom de variable, car tu la redéfinis dans la boucle.
    foreach ($travels as $travel){
        if($travel['departure'] === $depart ) {
                echo $travel ['arrival'];  
        }
}

merci pour ta réponse bien vu