8797 sujets

Développement web côté serveur, CMS

Bonjour,

Je développe un petit outil de gestion des adresses ip pour ma boîte et j'ai un souci pour lier 2 listes déroulantes qui vont chercher les informations dans une bdd mysql.

J'aimerais que la liste déroulante adresseIP s'affiche en fonction de la liste déroulante réseau. Pour information, la requête pour l'adresseIP tient compte des ip utilisées ou non.

Merci pour votre aide

Ci-joint le code :

mysql_connect("127.0.0.1", "root", "mysql");
				mysql_select_db("gestionip");
				$liste_ = array();
				$liste2_ = array();
				$liste3_ = array();
				$liste4_ = array();
								
				$select = ("SELECT Lieu FROM lieux");
				$req = mysql_query($select) or die ("Sélection impossible");
				
				$select3 = ("SELECT NomT FROM types");
				$req3 = mysql_query($select3) or die ("Sélection impossible");
				$select4 = ("SELECT Reseau FROM reseau");
				$req4 = mysql_query($select4) or die ("Sélection impossible");
				
				while($liste = mysql_fetch_assoc($req))
				{
				$liste_[] = $liste['Lieu'];
				}				
				
				while($liste3 = mysql_fetch_assoc($req3))
				{
				$liste3_[] = $liste3['NomT'];
				}
				while($liste4 = mysql_fetch_assoc($req4))
				{
				$liste4_[] = $liste4['Reseau'];
				}
				?>
				<form method="post" action="insertion_materiel.php" id="form">
				<table>
				<tr><td bgcolor='#f2f2f1'><b>Nom Machine</b></td><td><input type="text" size="25" style="text-align:center;" name="demnomm"></td></tr>
				<tr><td bgcolor='#f2f2f1'><b>Type</b></td><td><select style="text-align:center;" name="demnomt">
				<?php
				foreach($liste3_ AS $value3)
				{
				echo "<option value='$value3' selected>$value3</option>";
				}
				echo '</select>';
				?>
				</td></tr>
				<tr><td bgcolor='#f2f2f1'><b>Marque</b></td><td><input type="text" size="15" style="text-align:center;" name="demmarque"></td></tr>
				<tr><td bgcolor='#f2f2f1'><b>Modèle</b></td><td><input type="text" size="25" style="text-align:center;" name="demmodele"></td></tr>
				<tr><td bgcolor='#f2f2f1'><b>Réseau</b></td><td><select style="text-align:center;" name="demreseau" id="iddemreseau">
				<?php
				foreach($liste4_ AS $value4)
				{
				echo "<option value='$value4' selected>$value4</option>";
				}
				echo '</select>';				
				
				$select2 = ("SELECT AdresseIP FROM ip WHERE AdresseIP LIKE '$value4%' AND AdresseIP NOT IN (SELECT AdresseIP FROM materiels) ORDER BY INET_ATON(AdresseIP)");
				$req2 = mysql_query($select2) or die ("Sélection impossible");
				
				while($liste2 = mysql_fetch_assoc($req2))
				{
				$liste2_[] = $liste2['AdresseIP'];
				}					
				?>				
				</td></tr>
				<tr><td bgcolor='#f2f2f1'><b>Adresse IP</b></td><td><select style="text-align:center;" name="demip" id="iddemip" >
				<?php				
				foreach($liste2_ AS $value2)
				{
				echo "<option value='$value2' selected>$value2</option>";
				}
				echo '</select>';
				?>				
				</td></tr>
				<tr><td bgcolor='#f2f2f1'><b>Lieu</b></td><td><select style="text-align:center;" name="demlieu">
				<?php
				foreach($liste_ AS $value)
				{
				echo "<option value='$value' selected>$value</option>";
				}

Modifié par orygynz (23 May 2012 - 13:37)
J ai trouvé un script sur le net que j ai adapté. Mais le form dans le form fait tout deconner... Qq'un à une idée ? Merci


<?php 
$idr = isset($_POST['reseau'])?$_ POST['reseau']:null; 
mysql_connect("127.0.0.1", "root", "mysql");
mysql_select_db("gestionip");

$select4 = ("SELECT NumR, Reseau, NomR FROM reseau ORDER BY NumR");
$rech_reseaux = mysql_query($select4) or die ("Sélection impossible");
 $code_reseau = array(); 
$reseau = array(); 
/* On active un compteur pour les réseaux */
$nb_reseaux = 0;
 while($ligne = mysql_fetch_assoc($rech_ reseaux))
 { 
array_push($code_reseau, $ligne['NumR']); 
array_push($reseau, $ligne['NomR']);
 /* On incrémente de compteur */
$nb_reseaux++;
 }

?>
 <form method="post" action="insertion_materiel. php" id="form">
 <table>
 <tr><td bgcolor='#f2f2f1'><b>Réseau</b></td> <td><form method="post" id="chgip"> <select style="text-align:center;" name="reseau" id="reseau" onchange="document.forms[' chgip'].submit();">
<option value="-1">- - - Choisissez un réseau - --</option> 
<?php
 for($i = 0; $i < $nb_reseaux; $i++)
 {
 ?>
 <option value="<?php echo($code_reseau[$i]); ?>" <?php echo((isset($idr) && $idr == $code_reseau[$i])?" selected=\"selected\"":null); ? >><?php echo($reseau[$i]); ?></option> <?php }
 ?> 
</select> </td></tr> 
<?php
 if(isset($idr) && $idr != -1)
 {
 $select2 = ("SELECT AdresseIP FROM ip WHERE NumR = ". $idr ." AND AdresseIP NOT IN (SELECT AdresseIP FROM materiels) ORDER BY INET_ATON(AdresseIP)"); 
$rech_ip = mysql_query($select2) or die ("Sélection impossible");
 /* Un petit compteur pour les ip*/
$nd = 0;
 /* On crée un tableau pour les ip */
$code_ip = array(); 
/* On va mettre les les ip dans le tableau*/
while($ligne_ip = mysql_fetch_assoc($rech_ip))
 { 
array_push($code_ip, $ligne_ip['AdresseIP']);
 $nd++; 
}
?>
 <tr><td bgcolor='#f2f2f1'><b>Adresse IP</b></td> <td> <select style="text-align:center;" name="ip" id="ip"> <?php for($d = 0; $d<$nd; $d++) 
{
 ?> 
<option value="<?php echo($code_ip[$d]); ?>"<? php echo((isset($ip_selectionne) && $ip_selectionne == $code_ip[$d])?" selected=\"selected\"":null); ?>><?php echo $code_ip[$d]; ?></option> <?php } 
} 
?> 
</select> </td></tr> </form>

</table>
 <br><p align="center"><input type="submit" value="Ajouter"/></p></form>
 <?php
 mysql_close(); ?>

Modifié par orygynz (23 May 2012 - 22:59)
Bon désolé, j'ai beaucoup de souci au travail pour poster, impossible d'éditer mon post qui était illisible... Je l'ai remis en forme.

En fait, la question est simple, est-ce que mettre un form dans un form est possible ? Si non, comment je peux mettre en place ce type de chose qu'avec du php ?

Merci pour votre aide.