Passage parametres php

Signaler
Messages postés
12
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
27 janvier 2005
-
Messages postés
12
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
27 janvier 2005
-
Bonjour,


Je débute en php, et je rencontre un problème.
J'ai un formulaire qui contient 2 listes déroulantes contenant dont chacun des items provient d'une base de données MySQL.
Afin d'effectuer une recherche, je voudrais en postant le form récupérer les valeurs des 2 listes selectionnées par l'utilisateur.
Dans la barre de lien, les 2 valeurs apparaissent, mais lorsque j'affiche une fenetre JS je n'ai qu'une seule valeur.
Je ne vois pas mon erreur... pourriez vous m'aider ??


Merci d'avance !!!! :D


Voici le code :
// connexion a la base
<form name="choix" method=GET action=ind.php?dep=$a&arr=$b>
<select name="menuvdep">
<option selected>Sélectionnez une ville</option>";
// Recuperation des villes de départ
$tab1 =array();
while($row = mysql_fetch_row($result)){
$tab1[] = $row[0];
}


$tabtri1 = array_unique($tab1);
sort($tabtri1);
for($j=0;$j<sizeof($tabtri1);$j++)
{ $a = $tabtri1[$j];
echo "<option value=$a>$a</option>";}


echo "<tr><td>pays d'arrivée</td></tr>";
$query = "SELECT paysdest FROM voyage ";
$result = mysql_query($query);
echo "<tr><td><select name="menupaysdest">
<option selected>Sélectionnez un pays</option>";
// Recuperation des pays de dest
$tab = array();
while($row = mysql_fetch_row($result)){
$tab[]= $row[0];
}
$tabtri = array_unique($tab);
sort($tabtri);
for($i=0;$i<sizeof($tabtri);$i++)
{$b = $tabtri[$i];
echo "<option value=$b>$b</option>";}



echo"</select>"


echo""
echo""
echo""
?>
</form>

5 réponses

Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
1
Bonjour,
Quelques petites erreurs :

- fais bien attention de toujours terminer tes lignes php par un point-virgule, notamment les 4 dernières.

- <tr> et <td> sont des balises qui ne doivent être utilisées que dans des tables ainsi : blabla, blabla2

- Lorsque tu fais un echo "", à l'interieur de la chaine qe tu veux écrire, il ne doit pas y avoir de guillemets doubles, ainsi
echo""
s'écrit plutôt
echo"";
ou encore
echo"";

- il manque la balise </select> fermant la 1e liste déroulante

- les attributs des balises html s'écrivent . Ainsi préfère écrire
<option select='selected'>
que
<option selected>

- La méthode GET est-elle la plus appropriée pour passer les valeurs de ton formulaire ? A ta place, j'aurais utilisé un POST :
echo "<form name="choix" method='POST' action='ind.php'>";
Ensuite, dans ind.php, tu peux récupèrer les valeurs postées dans $_POST['menuvdep'] et dans $_POST['menupaysdest'].

Voilà, bon courage

Si tu ne t'en sors pas, n'hésite pas à en demander plus, en donnant aussi le code de la pge de destination.

a+
Arnaud
Messages postés
12
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
27 janvier 2005

Bonsoir,
Je te remercie pour ton aide précieuse !!!
J'aurais cependant une autre petite question...
J'ai cette erreur lors de l'appel de la page destination. Toutes mes tables sont bien déclarées, les champs aussi.


Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\ind.php on line 49

Je te donne une partie du code de la page :

$d = $_POST['menuvdep'];
$a = $_POST['menupaysdest'];
$query = "SELECT vdep,paysdest,varri, tarif FROM voyage where vdep=$d and paysdest=$a";
$result = mysql_query($query);
while($row = mysql_fetch_row($result)){
$vdep = $row[0];
$paysdest = $row[1];
$varri = $row[2];
$prix = $row[3];
echo "$vdep $paysdest ($varri) $prix";
}

Dsl pour mes petits problèmes de débutants, si tu en veux encore, n'hésite pas... lol

Encore merci !!!

Bonne soirée
Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
1
Apparement il y a un pb dans ta requête.
Essaie $query = "SELECT vdep,paysdest,varri, tarif FROM voyage where vdep='$d' and paysdest='$a'";
Sinon, tu peux aussi afficher ta requête avec un echo $query, pour débugger.
Les valeurs ont-elles bien été postées (tu le vera dans l'affichage de la requête) ?

Arnaud
Messages postés
12
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
27 janvier 2005

Merci merci pour tous tes conseils qui m'ont vraiment aidé !!!!!!

Bonne journée

Gaelle
Messages postés
12
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
27 janvier 2005

Bonjour !
Je viens d'aller voir ton site il me plait bcp. Je voudrais savoir si tu peux me donner la technique d'affichage que tu as utilisé pour ton cv ?
Merci d'avance