Menus déroulants dépendants

daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012 - 23 juil. 2009 à 17:12
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012 - 30 juil. 2009 à 17:04
Bonjour.

Je suis novice en php mais j'ai quand même essayé de faire une page de trie pour afficher des données de ma base mysql.

Première étape : Le trie se fait grace à 2 menus déroulants dont le contenu du second dépend de la sélection dans le premier.

Pour que ce soit parfait, j'aimerais qu'il soit possible de faire des sélections multiples dans les menus.

Mon code actuel :

<?php

include('connection.php');

echo '<form id="choixpays" method="post" action="result.php">
$rq1 = "SELECT DISTINCT pays FROM vae ORDER BY lot ASC";
$donnees1 = mysql_query($rq1) or die(mysql_error());
$selected = 0;

?>

<select name="pays" id="pays" onchange="document.forms('choixpays').submit()">
<?php
echo '<option disabled="disabled" SELECTED>Pays :</option>';
while ($row = mysql_fetch_array($donnees))
{
if($Selected == 0)
{
echo '<option value="', $row[0], '">', $row[0], '</option>';
$Selected = 1;
}
else
{
echo '<option value="', $row[0], '">', $row[0], '</option>';
}
}
echo '</select></form>';

if (isset ($_POST['regime']))
{
$regime = $_POST['regime'];
echo '<form id="choixregime" method="post" action="result.php">
$rq2 = "SELECT regime FROM vae WHERE pays='$pays'";
$donnees2 = mysql_query($rq2) or die(mysql_error());
?>

<select name="regime" id="regime" onchange="document.forms('choixregime').submit()">
<?php
$Selected = 0;
echo '<option disabled="disabled" SELECTED> Régime :</option>";
while ($row = mysql_fetch_array($donnees))
{
if($Selected == 0)
{
echo '<option value="', $row[1], '">', $row[1], '</option>';
$Selected = 1;
}
else
{
echo '<option value="', $row[1], '">', $row[1], '</option>';
}
}
echo '</select></form>';

mysql_close();

?>


Quand je test ce code, j'ai le message suivant que je n'ai pas résolu :

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in recherche.php on line 29

Pourriez vous me dire pourquoi j'ai ce message et s'il y a éventuellement d'autres erreurs dans le code.

Merci par avance.

DapORoty

5 réponses

cs_BlackDragon Messages postés 16 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 11 août 2009
23 juil. 2009 à 19:36
echo '<form id="choixregime" method="post" action="result.php">


ta oublier '; a la fin

faut apprendre a lire les messages d'erreur PHP du type
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in recherche.php on line 29

ca dit tout!

sans parler de cette ligne:

echo '<option disabled="disabled" SELECTED> Régime :</option>";

ta mis ' au debut et " a la fin donc ya possiblite d'avoir un autre erreur

verifie bien que tu utilise tjrs les meme quotes au debut et a la fin d'une string
0
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012
27 juil. 2009 à 15:30
Bonjour,

Merci pour les " ' ; j'ai fait la correction mais j'ai maintenant l'erreur parse error, unexpected $ on line 77.
La ligne 77 c'est la dernière : </html>
Il parait que dans ce cas ca serait un problème dans la boucle ! ?
Peut etre y a t'il une erreur importante que je n'aurais pas vu.

Merci de votre aide.
Le code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>RECHERCHES</title>
<meta name="author" content="" />
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
<meta http-equiv="Content-Language" content="fr" />
<meta name="keywords" lang="fr" content="<!-- Insérer les mots-clefs de votre page-->" />
<link rel="stylesheet" media="screen" type="text/css" title="style" href="css/style.css" />
<script type="text/javascript" src=""></script>
</head> 



<?php

include('connection.php');

echo '<form id="choixpays" method="post" action="result.php">';
$rq1 = "SELECT DISTINCT pays FROM vae ORDER BY lot ASC";
$donnees1 = mysql_query($rq1) or die(mysql_error());
$selected = 0;

?>

<select name="pays" id="pays" onchange="document.forms('choixpays').submit()">
<?php
echo '<option disabled="disabled" SELECTED>Pays :</option>';
while ($row = mysql_fetch_array($donnees))
{
if($Selected == 0)
{
echo '<option value="', $row[0], '">', $row[0], '</option>';
$Selected = 1;
}
else
{
echo '<option value="', $row[0], '">', $row[0], '</option>';
}
}
echo '</select></form>';

if (isset ($_POST['regime']))
{
$regime = $_POST['regime'];
echo '<form id="choixregime" method="post" action="result.php">';
$rq2 = "SELECT regime FROM vae WHERE pays='$pays'";
$donnees2 = mysql_query($rq2) or die(mysql_error());
?>

<select name="regime" id="regime" onchange="document.forms('choixregime').submit()">
<?php
$Selected = 0;
echo '<option disabled="disabled" SELECTED> Régime :</option>';
while ($row = mysql_fetch_array($donnees))
{
if($Selected == 0)
{
echo '<option value="', $row[1], '">', $row[1], '</option>';
$Selected = 1;
}
else
{
echo '<option value="', $row[1], '">', $row[1], '</option>';
}
}
echo '</select></form>';

mysql_close();

?>


</html>



DapORoty
0
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012
27 juil. 2009 à 16:59
Bonjour,

J'ai encore apporté des modifications à la syntaxe, mais il y a toujours une parse error ligne 77 : </html>.

Je fatigue.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>RECHERCHES</title>
<meta name="author" content="" />
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
<meta http-equiv="Content-Language" content="fr" />
<meta name="keywords" lang="fr" content="" />
<link rel="stylesheet" media="screen" type="text/css" title="style" href="css/style.css" />
<script type="text/javascript" src="" ></script>
</head> 



<?php

include('connection.php');

echo '<form id="choixpays" method="post" action="result.php">';
$rq1 = "SELECT DISTINCT pays FROM vae ORDER BY lot ASC";
$donnees1 = mysql_query($rq1) or die(mysql_error());
$selected = 0;

?>

<select name="pays" id="pays" onchange="document.forms('choixpays').submit()">
<?php
echo '<option disabled="disabled" SELECTED>Pays :</option>';
while ($row = mysql_fetch_array($donnees))
{
if($Selected == 0)
{
echo '<option value="'.$row[0].'">'.$row[0].'</option>';
$Selected = 1;
}
else
{
echo '<option value="'.$row[0].'">'.$row[0].'</option>';
}
}
echo '</select></form>';

if (isset ($_POST['regime']))
{
$regime = $_POST['regime'];
echo '<form id="choixregime" method="post" action="result.php">';
$rq2 = "SELECT regime FROM vae WHERE pays='".$pays."'";
$donnees2 = mysql_query($rq2) or die(mysql_error());
?>

<select name="regime" id="regime" onchange="document.forms('choixregime').submit()">
<?php
$Selected = 0;
echo '<option disabled="disabled" SELECTED> Régime :</option>';
while ($row = mysql_fetch_array($donnees))
{
if($Selected == 0)
{
echo '<option value="'.$row[1].'">'.$row[1].'</option>';
$Selected = 1;
}
else
{
echo '<option value="'.$row[1].'">'.$row[1].'</option>';
}
}
echo '</select></form>';

mysql_close();

?>


</html>


DapORoty
0
cs_BlackDragon Messages postés 16 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 11 août 2009
27 juil. 2009 à 17:27
if (isset ($_POST['regime']))

{

$regime = $_POST['regime'];

echo '<form id="choixregime" method="post" action="result.php">';

$rq2 = "SELECT regime FROM vae WHERE pays='".$pays."'";

$donnees2 = mysql_query($rq2) or die(mysql_error());

?>


Ta pas fermé le if avec }.

et puis conseil, évite les espaces inutilent, ca rend la relecture fastidieuse. revois aussi ton indentation
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
daporoty Messages postés 54 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 10 septembre 2012
30 juil. 2009 à 17:04
Bonjour,
Merci pour ces conseils et corrections cependant le plus important reste a venir : ca ne marche pas.

mysql_fetch_array(): supplied argument is not a valid MySQL result resource in recherche.php on line 32
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in recherche.php on line 59

Merci par avance.

DapORoty
0
Rejoignez-nous