8796 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je suis en train de réaliser 2 listes déroulantes liées entre elles, ce qui fonctionne correctement donc quand je choisis un nom dans ma 1ere liste, la 2e liste n'affiche que les numéros correspondant à ce nom.
Par contre lorsque je sélectionne un numéro dans ma 2e liste, je n'arrive pas à renvoyer les données relatives à ce numéro comme la ville, le pays, etc repris dans la base de données.

Je reçois le message "undefined offset"... Je pense que le souci se situe à la fin du code ici:

if (isset($_POST[$code_dept[$d]])) { 
$sql = 'SELECT * FROM pharmacies WHERE APB = "'.$_POST[$code_dept[$d]].'"';


Merci beaucoup pour votre aide!

Mon code:

<?php
 
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "base";
 
$idr = isset($_POST['rep'])?$_POST['rep']:null;
$idrapb = isset($_POST['APB'])?$_POST['APB']:null;
 
if(isset($_POST['ok']) && isset($_POST['APB']) && $_POST['APB'] != "")
{
    $region_selectionnee = $_POST['rep'];
    $dept_selectionne = $_POST['APB'];
}

$connexion = mysql_pconnect($serveur, $admin, $mdp);
 
if($connexion != false)
{
    $choixbase = mysql_select_db($base, $connexion);
    $sql1 = "SELECT `id_rep`, `rep`"." FROM `rep`"." ORDER BY `id_rep`";
 
    $rech_regions = mysql_query($sql1);
     $code_region = array();
     $region = array();
     $nb_regions = 0;
 
    if($rech_regions != false)
    {
        while($ligne = mysql_fetch_assoc($rech_regions))
        {
            array_push($code_region, $ligne['id_rep']);
            array_push($region, $ligne['rep']);
             $nb_regions++;
        }
    }
    ?>
 
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
 <select name="rep" id="rep" onchange="document.forms['chgdept'].submit();">
   <option value="-1">Choisissez un nom</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);
 
    if(isset($idr) && $idr != -1)
    {
      $sql2 = "SELECT `id_pharmacie`, `APB`"." FROM `pharmacies`"." WHERE `id_rep` = ". $idr .""." ORDER BY `APB`;";
 
		if($connexion != false)
        {
            $rech_dept = mysql_query($sql2, $connexion);
            $nd = 0;
 
            $code_dept = array();
		
            while($ligne_dept = mysql_fetch_assoc($rech_dept))
            {
                array_push($code_dept, $ligne_dept['APB']);
                $nd++;
            }
            ?>
 
<select name="APB" id="APB" onchange="submit();">
 
            <?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($code_dept[$d]); ?></option>
<?php
            }
?>
 
</select>
</form>
 
<?php
        }
		mysql_free_result($rech_dept);
		
		 if (isset($_POST[$code_dept[$d]])) { 
		$sql = 'SELECT * FROM pharmacies WHERE APB = '.$_POST[$code_dept[$d]].'"';
		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br/>'.mysql_error()); 
	          while ($donnees=mysql_fetch_array($req))  
				{
		       echo "<table>
					<tr>
						<td>test:".$donnees['city']."</td>
						<td>".$donnees['country']."</td>
					</tr>
				
					</table>
			";
				}}  
		 else { 
		       echo '';  
		}
		}
    mysql_close($connexion);
}
else
{}
?>

Modifié par san1981 (17 Apr 2011 - 12:34)