[RESOLU] problème sélection ligne d'un tableau

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] problème sélection ligne d'un tableau

Re: problème sélection ligne d'un tableau

par quattro » 16 janv. 2017, 16:22

Merci. Trouvé.
C'est bien la typo, je n'ai pas appliqué les règles pourtant bien décrites dans mes courts.
Impeccable ça fct.

Re: problème sélection ligne d'un tableau

par Spols » 16 janv. 2017, 16:10

Non le problème vient de ta typo, Paris est différent de paris (majuscule ou non) donc il faut être sur de comparer la même chose

je conseille de tout mettre en minuscule, comme ca pas de question sinon dans ta comparaison tu peux aussi mettre un strtolower de chaque cté pour rendre ta comparaison insensible à la casse

Re: problème sélection ligne d'un tableau

par quattro » 16 janv. 2017, 15:52

là je cale...
Je résume mon code :
dans <option> je sélectionne par exemple "Dublin".
Je met ensuite "Dublin" dans $villedepart.
Ensuite avec le FOREACH je scan mon tableau, et dès que je trouve "Dublin", j'affiche...

or 1tu veux me dire que dans tous les cas, étant donné que dans <option> j'ai déjà des villes de renseigner, mon FOREACH va trouver automatiquement toutes les villes de Départ est que le résultat est normal ? c'est ça ?

Re: problème sélection ligne d'un tableau

par or 1 » 16 janv. 2017, 15:24

0 => array('Départ' => 'Paris'
<option value="paris">Paris</option>
donc comparaison de paris et Paris. le résultat est normal.

Re: problème sélection ligne d'un tableau

par quattro » 16 janv. 2017, 14:49

Oui J'ai enlevé l'accent à Depart.
Ensuite mon code avec le var_dump :

Code : Tout sélectionner

if(!empty($_POST['Vdepart'])) // si quelque chose, je place dans une variable { $villedepart = $_POST['Vdepart']; } // j'effectue une recheche dans le tableau($voyages) // foreach ($voyages as $element) { if ($element['Depart'] == $villedepart) { var_dump($element['Depart']); } }
n'afiche rien.
par contre si le var_dump je le met :

Code : Tout sélectionner

if(!empty($_POST['Vdepart'])) // si quelque chose, je place dans une variable { $villedepart = $_POST['Vdepart']; } // j'effectue une recheche dans le tableau($voyages) // foreach ($voyages as $element) { if ($element['Depart'] == $villedepart) { echo $element['Depart']; } var_dump($element['Depart']); }
cela m'affiche toutes les destination de départ. Ce n'est pas se que je veux. je veux uniquement c'elles qui seront dans $villedepart??

Re: problème sélection ligne d'un tableau

par Spols » 16 janv. 2017, 14:33

Tu as changé tes index de ton tableau ou tu as oublié l'accent à Départ dans la condition ?
met ton var_dump avant la condition pour savoir si c'est le !empty ou le == qui bloque.

un echo $element ne te donnera rien d"autre que "Array" donc c'est probablement pas ce que tu veux

Re: problème sélection ligne d'un tableau

par quattro » 16 janv. 2017, 13:09

if(!empty($_POST['Vdepart']))
// si quelque chose, je place dans une variable
{
$villedepart = $_POST['Vdepart'];
}
// j'effectue une recheche dans le tableau($voyages) //
foreach ($voyages as $element)
{
if ($element['Depart'] == $villedepart)
{
echo $element;
var_dump($element);
}
}[/code]
j'ai donc mis se code, mais a l'affichage du navigateur je n'ai que mon formulaire, et rien ne se passe, le var_dump n'affiche rien non plus.

Re: problème sélection ligne d'un tableau

par Spols » 16 janv. 2017, 12:54

Tu as un tableau de tableau, donc quand tu fais foreach ($voyages as $element)
$element est un tableau (ton var_dump te le précise)

tu dois donc tester $element['Départ'] == $villedepart.

PS je te conseille d'éviter les accents dans les index de tes tableaux. Il ne devrait jamais être utilisé pour l'affichage, donc une valeur sure sans accent ou caractère bizarre est plus indiqué

problème sélection ligne d'un tableau

par quattro » 16 janv. 2017, 12:33

Bonjour
Je suis nouveau dans le forum PHPFrance.
Je suis débutant en HTML et PHP (formation que j'effectue actuellement en cours du soir).
Mon but est d'avancer/d'apprendre, de pouvoir être aider dans les premiers temps et qui sais, pouvoir aider moi-même par la suite sur le forum (beaucoup de travail en perspective).
Voila j'ai un souci avec une recherche dans un tableau.

Code : Tout sélectionner

<body> <form action="index.php" method="post"> <!-- IDENTITE Client --> <p>Nom : <input type="text" name="nom" placeholder="entrez votre Nom" id="m1"></p> <p>Prénom : <input type="text" name="prenom" placeholder="entrez votre Prénom" id="m2"></p> <p>N° de tel : <input type="tel" name="telephone" placeholder="N° de telephone" id="m3"></p> <!-- Selection ville de départ --> <p>Ville de départ : <select name="Vdepart"> <option value="paris">Paris</option> <option value="orleans">Orléans</option> <option value="dublin" selected>Dublin</option> <option value="nice">Nice</option> <option value="tours">Tours</option> </select></p> <!-- Bouton "Recherche" de la ville de départ --> <p>Recherche : <input type="submit" value="Rechercher" name="cherche" id="m4"></p> </form> <?php // Déclaration du Tableau($voyages) // $voyages = array ( 0 => array('Départ' => 'Paris', 'Arrivé' => 'Nantes', 'HeureDep' => '11:00', 'HeureAriv' => '12:34', 'Conducteur' => 'Thomas'), 1 => array('Départ' => 'Orléans', 'Arrivé' => 'Nantes', 'HeureDep' => '05:15', 'HeureAriv' => '09:32', 'Conducteur' => 'Mathieu'), 2 => array('Départ' => 'Dublin', 'Arrivé' => 'Tours', 'HeureDep' => '07:23', 'HeureAriv' => '08:50', 'Conducteur' => 'Nathanael'), 3 => array('Départ' => 'Paris', 'Arrivé' => 'Orléans', 'HeureDep' => '03:00', 'HeureAriv' => '05:26', 'Conducteur' => 'Clément'), 4 => array('Départ' => 'Paris', 'Arrivé' => 'Nice', 'HeureDep' => '10:00', 'HeureAriv' => '12:09', 'Conducteur' => 'Audrey'), 5 => array('Départ' => 'Nice', 'Arrivé' => 'Nantes', 'HeureDep' => '10:40', 'HeureAriv' => '13:00', 'Conducteur' => 'Pollux'), 6 => array('Départ' => 'Nice', 'Arrivé' => 'Tours', 'HeureDep' => '11:00', 'HeureAriv' => '16:10', 'Conducteur' => 'Edouard'), 7 => array('Départ' => 'Tours', 'Arrivé' => 'Amboise', 'HeureDep' => '16:00', 'HeureAriv' => '18:40', 'Conducteur' => 'Priscilla'), 8 => array('Départ' => 'Nice', 'Arrivé' => 'Nantes', 'HeureDep' => '12:00', 'HeureAriv' => '16:00', 'Conducteur' => 'Charlotte'), ); //Je teste pour savoir si j'ai quelque chose dans POST if(!empty($_POST['Vdepart'])) // si quelque chose, je place dans une variable { $villedepart = $_POST['Vdepart']; } // j'effectue une recheche dans le tableau($voyages) // foreach ($voyages as $element) { if ($element == $villedepart) { echo $element; var_dump($element); } } ?>
Je sélectionne une ville de départ dans mon formulaire, ensuite je lance la recherche et cela doit me trouver les villes correspondantes à ma sélection. Je bloque là ?? en lançant une bcle ForEach sur le tableau, je n'arrive pas a isoler la ligne correspondante a ma sélection ??
Je fais un var-dump pour voir se que contient $element, mais là vide ??? je pense que je ne fais pas la bonne manip.