Pour mon devoir en php

Résolu

Bonjour,

Voici un rappel de l'énoncé : J'ai dois proposez les trajets possibles. Lorsque l’utilisateur clique sur « Rechercher », les destinations correspondantes à sa ville de départ sont proposées.Pour  ma part, quand je soumette le formulaire, j'affichez uniquement les données rentrées dans le formulaire et non les destinations correspondantes à la ville de départ. Et on me conseille de récupéré la ville de départ et de boucler sur le tableau des trajets pour afficher uniquement les trajets qui ont cette ville en départ. Je sais vraiment pas comment régler ça. S'il vous plaît pouvez-vous m'aider.

Cordialement 

9 réponses

  1. Modérateur

    Bonjour

    Tu dis

    on me conseille de récupéré la ville de départ et de boucler sur le tableau des trajets pour afficher uniquement les trajets qui ont cette ville en départ. Je sais vraiment pas comment régler ça

    Vu ton code, tu as déjà la boucle... 

    Il ne te reste donc qu'à y ajouter un test (en utilisant un IF ) pour ne garder que les lognes voulues de ton array...


    1. Modérateur

      Vu que tu t'es encore trompé en ouvrant une nouvelle discussion... je remets ici le code que tu as voulu nous montrer..

      //travels
      $depart = $_POST['depart'];
      
      $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' =>'Nathanael'],
          ['departure'=> 'Paris', 'arrival' => 'Orléans', 'departureTime' => '03:00', 'arrivalTime' => '05:26', 'driver' =>'Clément'],
          ['departure'=> 'Nice', 'arrival' => 'Nantes', 'departureTime' => '10:40', 'arrivalTime' => '13:00', 'driver' =>'Pollux'],
          ['departure'=> 'Nice', 'arrival' => 'Tours', 'departureTime' => '11:00', 'arrivalTime' => '16:10', 'driver' =>'Edouart'],
          ['departure'=> 'Nice', 'arrival' => 'Nantes', 'departureTime' => '12:00', 'arrivalTime' => '16:00', 'driver' =>'Charlotte'],
          ['departure'=> 'Paris', 'arrival' => 'Nice', 'departureTime' => '10:00', 'arrivalTime' => '12:09', 'driver' =>'Audrey'],
      ];
       
      $LesLignesCorrespondent = array();
       
      foreach ($travels as $travel ) {
      if ($travel['departure'] == $depart) {
      $LesLignesCorrespondent[] = $travel;
              }
      }
        
      print_r ($LesLignesCorrespondent);
       

      et donc, pour corriger ton erreur... le code modifié

      //travels
      $depart = !empty($_POST['depart']) ? $_POST['depart']: NULL;
      
      if($depart){
        $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' =>'Nathanael'],
          ['departure'=> 'Paris', 'arrival' => 'Orléans', 'departureTime' => '03:00', 'arrivalTime' => '05:26', 'driver' =>'Clément'],
          ['departure'=> 'Nice', 'arrival' => 'Nantes', 'departureTime' => '10:40', 'arrivalTime' => '13:00', 'driver' =>'Pollux'],
          ['departure'=> 'Nice', 'arrival' => 'Tours', 'departureTime' => '11:00', 'arrivalTime' => '16:10', 'driver' =>'Edouart'],
          ['departure'=> 'Nice', 'arrival' => 'Nantes', 'departureTime' => '12:00', 'arrivalTime' => '16:00', 'driver' =>'Charlotte'],
          ['departure'=> 'Paris', 'arrival' => 'Nice', 'departureTime' => '10:00', 'arrivalTime' => '12:09', 'driver' =>'Audrey'],
      ];
       
        $LesLignesCorrespondent = array();
       
        foreach ($travels as $travel ) {
          if ($travel['departure'] == $depart) {
            $LesLignesCorrespondent[] = $travel;
          }
        }
        
        print_r ($LesLignesCorrespondent);
      }

      1. Bonjour .

        j'ai fais ce que vous m'avez dit mais sa montre ce genre de messages sur mon navigateur :

        The requested URL was not found on this server.


        Apache/2.4.54 (Win64) PHP/8.0.26 mod_fcgid/2.3.10-dev Server at localhost Port 80.

        Savez vous qu'elle est le problème ?

        .

        Cordialement

        Botra

        1. Modérateur

          Là c'est un problème d'URL pas de code PHP visiblement...

          À quel moment as-tu cette erreur ?

          Lorsque tu affiches ton formulaire ou lorsque tu le valides ?

          Quel URL apparaît dans ton navigateur internet ? Es-tu sûr qu'elle est bonne ?

      2. Quand je valide, car j'utilise Firefox comme navigateur d'affichage de php.

        1. Modérateur

          Et pour mes autres questions ?

      3. Je suis en erreur si j'appuie sur rechercher . Même quand j'affiche ou je valide .

        Mon URL : http://localhost/test_php/test.php. Sur comment ! Et sur quoi ?

        1. Modérateur

          Donc, 

          Quand tu valides ton formulaire, l'URL qu'il essaye d'afficher est bien celle que tu nous montres ?

          Le fichier ciblé se trouve bien dans ton dossier www/test_php/test.php ? (Ecrit EXACTEMENT de cette manière ?!?)

          Pourrais tu également nous partager le code de ton formulaire ( le code COMPLET de tes fichiers)


          1. Ah !  C'est bon monsieur j'ai trouvé le source du problème . C'étais le   <form action="test.php". J'avais oublié de le mettre en "test.php" alors qu'avant j'avais mis index.php.

            ça marche j'avoue, sauf que je me demande si je suis bien sur la bonne voie car lorsque l'utilisateur clique sur "rechercher", les destination correspondantes à sa ville départ sont proposées. 

            Ma question est : Est-ce que la je propose ma ville de départ ?

            Désolé un peu j'ai vraiment un peu du mal sur php mais je fais mon possible pour le comprendre .