par
thierry222 » 15 août 2008, 08:40
Bonjour,
je ne suis pas tres bon en php et ma question vous paraitra peut-etre un peu bête...
voila, j'ai utilisé le code php de "Listes déroulantes liées" posté dans la rubrique FAQ et tutoriels.
j'ai mis le code dans un fichier liste_deroulante.php et je l'appelle dans ma page
ça fonctionne tres bien pour afficher les departements de la region
mon probleme: je dois en cliquant sur Envoyer afficher des annonces de ce departement. le code n'est pas prevu pour ça, il manque un petit quelque chose et la je bloque, est-ce que quelqu'un pourrait m'aider svp ?
Code : Tout sélectionner
require('gestion/qs_connection.php');
$base = "regions";
$idr = isset($_POST['region'])?$_POST['region']:null;
if(isset($_POST['ok']) && isset($_POST['departement']) && $_POST['departement'] != "")
{
$region_selectionnee = $_POST['region'];
$dept_selectionne = $_POST['departement'];
$_SESSION['depart']=$depart;
}
?>
<table cellpadding="0" cellspacing="0">
<tr>
<td width="457" colspan="3" ><p align="left">
<?php
/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
* car on aura besoin de la connexion un peu plus loin dans le script */
$connexion = mysql_pconnect($host,$user,$passwd);
if($connexion != false)
{
$choixbase = mysql_select_db($base,$connexion);
$sql1 = "SELECT `idregion`, `libregion`".
" FROM `regions`".
" ORDER BY `idregion`";
$rech_regions = mysql_query($sql1);
$code_region = array();
$region = array();
/* On active un compteur pour les régions */
$nb_regions = 0;
if($rech_regions != false)
{
while($ligne = mysql_fetch_assoc($rech_regions))
{
array_push($code_region, $ligne['idregion']);
array_push($region, $ligne['libregion']);
/* On incrémente de compteur */
$nb_regions++;
}
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
<fieldset style="margin-left:6; margin-right:6; margin-bottom:6; margin-top:6; border:1pxb solid #CCCCCC">
<legend > Votre sélection</legend> <?php RemplirTypeCommerce("typeann"); ?><br /><br />
<select name="region" id="region" onchange="document.forms['chgdept'].submit();">
<option value="-1">- - - Choisissez une région - - -</option>
<?php
for($i = 0; $i < $nb_regions; $i++)
{
?>
<option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?></option>
<?php
}
?>
</select>
<?php
mysql_free_result($rech_regions);
/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
$departement=0;
if(isset($idr) && $idr != -1)
{
/* Cération de la requête pour avoir les départements de cette région */
$sql2 = "SELECT `iddepart`, `libdepart`".
" FROM `departements`".
" WHERE `id_region` = ". $idr ." ".
" ORDER BY `iddepart`";
if($connexion != false)
{
$rech_dept = mysql_query($sql2, $connexion);
/* Un petit compteur pour les départements */
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des départements */
$code_dept = array();
$nom_dept = array();
/* On va mettre les numéros et noms des départements dans les deux tableaux */
while($ligne_dept = mysql_fetch_assoc($rech_dept))
{
array_push($code_dept, $ligne_dept['iddepart']);
array_push($nom_dept, $ligne_dept['libdepart']);
$nd++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<select name="departement" id="departement">
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($code_dept[$d]); ?>"<?php echo((isset($dept_selectionne) && $dept_selectionne == $code_dept[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_dept[$d]." (". $code_dept[$d] .")"); ?></option>
<?php
}
?>
</select>
<?php
}
/* Un petit coup de balai */
mysql_free_result($rech_dept);
}
?>
<br /><br /> <input type="submit" name="ok" id="ok" value="Modifier" /> <br /><br />
</fieldset>
</form>
<?php
/* Je ne peux pas fermer la connexion car j'en ai besoin dans la suite de la page */
}
else
{
/* Si on arrive là, c'est pas bon signe, il faut vérifier les
* paramètres de connexion, mot de passe, serveur pas démarré etc... */
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
</p></tr>
</table>
[/php][/code]
Bonjour,
je ne suis pas tres bon en php et ma question vous paraitra peut-etre un peu bête...
voila, j'ai utilisé le code php de "Listes déroulantes liées" posté dans la rubrique FAQ et tutoriels.
j'ai mis le code dans un fichier liste_deroulante.php et je l'appelle dans ma page
ça fonctionne tres bien pour afficher les departements de la region
mon probleme: je dois en cliquant sur Envoyer afficher des annonces de ce departement. le code n'est pas prevu pour ça, il manque un petit quelque chose et la je bloque, est-ce que quelqu'un pourrait m'aider svp ?
[code]
require('gestion/qs_connection.php');
$base = "regions";
$idr = isset($_POST['region'])?$_POST['region']:null;
if(isset($_POST['ok']) && isset($_POST['departement']) && $_POST['departement'] != "")
{
$region_selectionnee = $_POST['region'];
$dept_selectionne = $_POST['departement'];
$_SESSION['depart']=$depart;
}
?>
<table cellpadding="0" cellspacing="0">
<tr>
<td width="457" colspan="3" ><p align="left">
<?php
/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
* car on aura besoin de la connexion un peu plus loin dans le script */
$connexion = mysql_pconnect($host,$user,$passwd);
if($connexion != false)
{
$choixbase = mysql_select_db($base,$connexion);
$sql1 = "SELECT `idregion`, `libregion`".
" FROM `regions`".
" ORDER BY `idregion`";
$rech_regions = mysql_query($sql1);
$code_region = array();
$region = array();
/* On active un compteur pour les régions */
$nb_regions = 0;
if($rech_regions != false)
{
while($ligne = mysql_fetch_assoc($rech_regions))
{
array_push($code_region, $ligne['idregion']);
array_push($region, $ligne['libregion']);
/* On incrémente de compteur */
$nb_regions++;
}
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
<fieldset style="margin-left:6; margin-right:6; margin-bottom:6; margin-top:6; border:1pxb solid #CCCCCC">
<legend > Votre sélection</legend> <?php RemplirTypeCommerce("typeann"); ?><br /><br />
<select name="region" id="region" onchange="document.forms['chgdept'].submit();">
<option value="-1">- - - Choisissez une région - - -</option>
<?php
for($i = 0; $i < $nb_regions; $i++)
{
?>
<option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?></option>
<?php
}
?>
</select>
<?php
mysql_free_result($rech_regions);
/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
$departement=0;
if(isset($idr) && $idr != -1)
{
/* Cération de la requête pour avoir les départements de cette région */
$sql2 = "SELECT `iddepart`, `libdepart`".
" FROM `departements`".
" WHERE `id_region` = ". $idr ." ".
" ORDER BY `iddepart`";
if($connexion != false)
{
$rech_dept = mysql_query($sql2, $connexion);
/* Un petit compteur pour les départements */
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des départements */
$code_dept = array();
$nom_dept = array();
/* On va mettre les numéros et noms des départements dans les deux tableaux */
while($ligne_dept = mysql_fetch_assoc($rech_dept))
{
array_push($code_dept, $ligne_dept['iddepart']);
array_push($nom_dept, $ligne_dept['libdepart']);
$nd++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<select name="departement" id="departement">
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($code_dept[$d]); ?>"<?php echo((isset($dept_selectionne) && $dept_selectionne == $code_dept[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_dept[$d]." (". $code_dept[$d] .")"); ?></option>
<?php
}
?>
</select>
<?php
}
/* Un petit coup de balai */
mysql_free_result($rech_dept);
}
?>
<br /><br /> <input type="submit" name="ok" id="ok" value="Modifier" /> <br /><br />
</fieldset>
</form>
<?php
/* Je ne peux pas fermer la connexion car j'en ai besoin dans la suite de la page */
}
else
{
/* Si on arrive là, c'est pas bon signe, il faut vérifier les
* paramètres de connexion, mot de passe, serveur pas démarré etc... */
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
</p></tr>
</table>
[/code][/php][/code]