****Bonjour,
Voila je rencontre un petit problème avec mon code.
les utilisateurs devront passer par un formulaire de contact pour la mise en relation. L’utilisateur doit choisir sa ville de départ dans une liste, en fonction de la ville choisie, les différents itinéraires seront proposés.
<?php
error_get_last(-1);
ini_set('display_errors', 1);
$firstName = $_POST['prenom'];
$name = $_POST['nom'];
$email = $_POST['email'];
$phoneNumber =$_POST['telephone'];
$city=$_POST['ville'];
$validation =$_POST['recherche'];
$erreur="";
if (isset($validation))
{
if (empty($firstName))
{
$erreur = 'Veuillez remplire le champ Prenom';
}
elseif (empty($name))
{
$erreur='Veuillez remplire le champ nom';
}
elseif (empty($email))
{
$erreur='Veuillez entrer une adresse email';
}
elseif (!is_numeric($phoneNumber))
{
$erreur='Veuillez entrer un numero valide';
}
else
{
echo '<p> Non :'.''. htmlspecialchars($name).'</p>';
echo '<p> Prenom :'.''. htmlspecialchars($firstName).'</p>';
echo '<p> Email :'.''. htmlspecialchars($email).'</p>';
echo '<p> Telephone :'.''. htmlspecialchars($phoneNumber).'</p>';
echo '<p> Ville de départ :'.''. htmlspecialchars($city).'</p>';
}
}
echo $erreur;
$travels=[
'id'=>0, [
'departure' => 'Paris',
'arrival' => 'Nantes',
'departureTime' => '11:00',
'arrivalTime' => '12:34',
'driver' =>'Thomas'
],
'id'=>1, [
'departure' => 'Orléans',
'arrival' => 'Nantes',
'departureTime' => '05:15',
'arrivalTime' => '09:32',
'driver' =>'Mathieu'
],
'id'=>2, [
'departure' => 'Dublin',
'arrival' => 'Tours',
'departureTime' => '07:23',
'arrivalTime' => '08:50',
'driver' =>'Nathanaël'
],
'id'=>3, [
'departure' => 'Paris',
'arrival' => 'Orléans',
'departureTime' => '03:00',
'arrivalTime' => '05:26',
'driver' =>'Clément'
],
'id'=>4, [
'departure' => 'Paris',
'arrival' => 'Nice',
'departureTime' => '10:00',
'arrivalTime' => '12:00',
'driver' =>'Audrey'
],
'id'=>5, [
'departure' => 'Nice',
'arrival' => 'Nantes',
'departureTime' => '10:40',
'arrivalTime' => '13:00',
'driver' =>'Pollux'
],
'id'=>6, [
'departure' => 'Nice',
'arrival' => 'Tours',
'departureTime' => '11:00',
'arrivalTime' => '16:10',
'driver' =>'Edouard'
],
'id'=>7, [
'departure' => 'Tours',
'arrival' => 'Amboise',
'departureTime' => '16:00',
'arrivalTime' => '18:40',
'driver' =>'Priscilla'
],
'id'=>8, [
'departure' => 'Nice',
'arrival' => 'Nantes',
'departureTime' => '12:00',
'arrivalTime' => '16:00',
'driver' =>'Charlotte'
],
]; //les destination correspondantes à sa ville de départ sont proposéess.
print_r($travels[2]);
foreach ($travels as $travel) {
echo $travel['departure'] .'</br>';
}
?>
Lorsque l’utilisateur clique sur « Rechercher », les destinations correspondantes à sa ville de départ sont proposées.
Array Array Array Array Array Array Array Array Array Array Array Array Array Array
salut
ca devrait être mieux
foreach ($travels as $travel) {
foreach ($travels as $search) {
echo $search['departure'] .'</br>';
}
}
Bonjour,
Ton tableau est bien comme tu l'as mis :
$travels=[
'id'=>0, [
'departure' => 'Paris',
'arrival' => 'Nantes',
'departureTime' => '11:00',
'arrivalTime' => '12:34',
'driver' =>'Thomas'
],
'id'=>1, [
ou
$travels=[
[ 'id'=>0,
'departure' => 'Paris',
'arrival' => 'Nantes',
'departureTime' => '11:00',
'arrivalTime' => '12:34',
'driver' =>'Thomas'
],
[ 'id'=>1,
...
Si c'est comme tu l'as mis, c'est bizzare, déjà il va écraser à chaque fois l'id et tu as un tableau avec des type de données différentes ce qui n'est pas simple pour les foreach.
Salut,
J'vois pas ou est le problème puisque ton code fontionne ;)
http://syframework.alwaysdata.net/8wo
@plus
Pierre
Bonjour,
le code fonctionne, le problème, je veux afficher tous le contenu de chaque id individuellemment (id =>1 ou id=>2.)
voici ce que j obtient .( [departure] => Paris [arrival] => Nantes [departureTime] => 11:00 [arrivalTime] => 12:34 [driver] => Thomas ) ArrayArrayArrayArrayArrayArrayArrayArrayArrayArray
le code que j'ai écrit
print_r($travels[0]);
foreach ($travels as $travel)
{
echo $travels[0];
}
salut,
il faut faire :
foreach ($travels[0] as $travel) {
echo $travel['departure'];
}
@plus
Pierre
comme ça :
foreach ($travels as $travel) {
foreach ($travel as $search) {
echo $search['departure'] .'</br>';
}
}
@plus
Pierre
ce qu'il faut faire :
http://syframework.alwaysdata.net/8wq
<?php
$travels=[
'id'=>0, [
'departure' => 'Paris',
'arrival' => 'Nantes',
'departureTime' => '11:00',
'arrivalTime' => '12:34',
'driver' =>'Thomas'
],
'id'=>1, [
'departure' => 'Orléans',
'arrival' => 'Nantes',
'departureTime' => '05:15',
'arrivalTime' => '09:32',
'driver' =>'Mathieu'
],
'id'=>2, [
'departure' => 'Dublin',
'arrival' => 'Tours',
'departureTime' => '07:23',
'arrivalTime' => '08:50',
'driver' =>'Nathanaël'
],
'id'=>3, [
'departure' => 'Paris',
'arrival' => 'Orléans',
'departureTime' => '03:00',
'arrivalTime' => '05:26',
'driver' =>'Clément'
],
'id'=>4, [
'departure' => 'Paris',
'arrival' => 'Nice',
'departureTime' => '10:00',
'arrivalTime' => '12:00',
'driver' =>'Audrey'
],
'id'=>5, [
'departure' => 'Nice',
'arrival' => 'Nantes',
'departureTime' => '10:40',
'arrivalTime' => '13:00',
'driver' =>'Pollux'
],
'id'=>6, [
'departure' => 'Nice',
'arrival' => 'Tours',
'departureTime' => '11:00',
'arrivalTime' => '16:10',
'driver' =>'Edouard'
],
'id'=>7, [
'departure' => 'Tours',
'arrival' => 'Amboise',
'departureTime' => '16:00',
'arrivalTime' => '18:40',
'driver' =>'Priscilla'
],
'id'=>8, [
'departure' => 'Nice',
'arrival' => 'Nantes',
'departureTime' => '12:00',
'arrivalTime' => '16:00',
'driver' =>'Charlotte'
],
]; //les destination correspondantes à sa ville de départ sont proposéess.
$c = count($travels)-2;
for($b=0;$b<=$c;$b++){
// print_r($travels[$b]);
foreach ($travels[$b] as $key => $value) {
echo $key . "=>" . $value . " ";
}
echo "</br>";
}
?>
@plus
Pierre
Encore une fois, ton tableau est mal formé, ton 'id' se remplace a chaque déclaration et te met un champ supplémentaire qui n'est pas un tableau.
L'enlever comme Pierre fait avec le count -2 n'est pas très propre (désolé de le dire comme ca Pierre),
<?php
$travels=[
[ 'id'=>0,
'departure' => 'Paris',
'arrival' => 'Nantes',
'departureTime' => '11:00',
'arrivalTime' => '12:34',
'driver' =>'Thomas'
],
[ 'id'=>1,
'departure' => 'Orléans',
'arrival' => 'Nantes',
'departureTime' => '05:15',
'arrivalTime' => '09:32',
'driver' =>'Mathieu'
],
[ 'id'=>2,
'departure' => 'Dublin',
'arrival' => 'Tours',
'departureTime' => '07:23',
'arrivalTime' => '08:50',
'driver' =>'Nathanaël'
],
[ 'id'=>3,
'departure' => 'Paris',
'arrival' => 'Orléans',
'departureTime' => '03:00',
'arrivalTime' => '05:26',
'driver' =>'Clément'
],
[ 'id'=>4,
'departure' => 'Paris',
'arrival' => 'Nice',
'departureTime' => '10:00',
'arrivalTime' => '12:00',
'driver' =>'Audrey'
],
[ 'id'=>5,
'departure' => 'Nice',
'arrival' => 'Nantes',
'departureTime' => '10:40',
'arrivalTime' => '13:00',
'driver' =>'Pollux'
],
[ 'id'=>6,
'departure' => 'Nice',
'arrival' => 'Tours',
'departureTime' => '11:00',
'arrivalTime' => '16:10',
'driver' =>'Edouard'
],
[ 'id'=>7,
'departure' => 'Tours',
'arrival' => 'Amboise',
'departureTime' => '16:00',
'arrivalTime' => '18:40',
'driver' =>'Priscilla'
],
[ 'id'=>8,
'departure' => 'Nice',
'arrival' => 'Nantes',
'departureTime' => '12:00',
'arrivalTime' => '16:00',
'driver' =>'Charlotte'
],
]; //les destination correspondantes à sa ville de départ sont proposéess.
foreach ($travels as $travel)
{
foreach ($travel as $key => $val)
{
echo $key . ' : ' . $val . ', ';
}
echo '</br>';
}
?>
Après le "ca ne fonctionne pas" n'est pas très clair, ce serait bien de dire ce que tu obtiens afin de pouvoir essayer de comprendre.
@eltharin,
ce que tu as fait fonctionne, mais le tableau viens peut être d'une source dont il à pas la main ;)
Bonjour, j'ai pris note de vos conseils .
j'ai effectué la suite de mon code . voici ce que j'ai fait.
merci pour votre aide .
$paris = array_merge_recursive($travels[0], $travels[3], $travels[4]);
$orleans = $travels[1];
$dublin = $travels[2];
$nice = array_merge_recursive($travels[5], $travels[6], $travels[8]);
$tours = $travels[7];
if ($city === 'Paris') {
foreach ($paris as $value) {
foreach ($value as $search) {
echo $search . ' ';
}
echo '<br>';
}
}
Ce que j'obtiens
Non :nom
Prenom :prenom
Email :nom@exemple.fr
Telephone :00000
Ville de départ :Paris
Paris Paris Paris
Nantes Orléans Nice
11:00 03:00 10:00
12:34 05:26 12:00
Thomas Clément Audrey
Deuxième essai avec une autre ville
$paris = array_merge_recursive($travels[0], $travels[3], $travels[4]);
$orleans = $travels[1];
$dublin = $travels[2];
$nice = array_merge_recursive($travels[5], $travels[6], $travels[8]);
$tours = $travels[7];
if ($city === 'Orléans') {
foreach ($orleans as $value) {
foreach ($value as $search) {
echo $search . ' ';
}
echo '<br>';
}
}
Ce que j'obtiens
Non :nom
Prenom :prenom
Email :nom@exemple.fr
Telephone :00000
Ville de départ :Orléans
Warning: Invalid argument supplied for foreach() in /Users/../Sites/formulaire/formulaire.php on line 117
Warning: Invalid argument supplied for foreach() in /Users/../Sites/formulaire/formulaire.php on line 117
Warning: Invalid argument supplied for foreach() in /Users/../Sites/formulaire/formulaire.php on line 117
Warning: Invalid argument supplied for foreach() in /Users/../Sites/formulaire/formulaire.php on line 117
Warning: Invalid argument supplied for foreach() in /Users/../Sites/formulaire/formulaire.php on line 117
Ce qui est normal vu que encore une fois, tu n'as pas la même chose au niveau de tes données.
Fais un print_r de ton tableau $paris et $orléans et tu verras que ce n'est pas la même structure.
Concernant ce code, tu as prévu d'avoir toujours le même tableau d'entrée (qui soit dit en passant, je n'ai tjours pas de réponse au fait de savoir si il et bien comme tu l'as écrit à savoir mal formé), car ces lignes :
$paris = array_merge_recursive($travels[0], $travels[3], $travels[4]);
$orleans = $travels[1];
$dublin = $travels[2];
$nice = array_merge_recursive($travels[5], $travels[6], $travels[8]);
$tours = $travels[7];
me font franchement peur.