Probleme d'indices? (compteur i)

Nouveau WRInaute
Bonjour a tous, j'aurais besoin d'aides svp, je suis bloqué sur mon script depuis plusieurs jours à cause d'un problème à la gestion d'un compteur i sur plusieurs pages je pense. Je sais pas si je pourrais vous faire comprendre mon problème car c'est un peu compliquer à expliquer.

En fait, voila, mon problème est au niveau d'un select qui se retrouve dans un "while" et en même temps on à la possibilité d'en rajouter d'autres si on clique sur un bouton ajouter. Mais le problème n'est pas que cela car ses select sont dépendants de la précédente réponse d'un select (en effet le select en question apparait une fois le précédent rempli).

Merci

page ajouter2.php:

Code:
<?php
include('includes\fonctions.inc');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<title>Ajouter nouvelle Fiche KATIA</title>
		<link rel="stylesheet" type="text/css" href="css/style.css" />
		<link rel="stylesheet" href="calendrier/microcalendar.css" />
		<script language="javascript" src="calendrier/microcalendar.js"></script>
		<script language="javascript" >
			var param_ddeb = {"dfin" : "date_fin", "titre" : "date debut" };
			var param_dfin = {"ddeb" : "date_deb", "titre" : "date fin"  };
		</script>
		<style type="text/css">
			fieldset {margin:3px;padding:10px}
			body, input, label, select {font:normal 11px verdana}
			.add {color:green;text-decoration:underline;cursor:hand}
			.del {color:red;text-decoration:underline;cursor:hand}
			body {background-color:#f8f8ff}
			#global, h1, h4 {text-align:center}
			h3, h4 {text-decoration:underline}
			.cadre {margin:10px auto;text-align:center}
			.sous_cadre {margin:5px auto}
			.cadre, .sous_cadre {background-color:#e3e3e3;border:2px solid #d3d3d3;padding:3px;text-align:center}
		</style>
		<script type="text/javascript">
			function rack_disk_max(str){
				if (str==""){
					  document.getElementById("nb_disk_max").innerHTML="";
					  return;
				} 
				if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
					  xmlhttp=new XMLHttpRequest();
				}
				else {// code for IE6, IE5
					  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
				}
				xmlhttp.onreadystatechange=function(){
				  if (xmlhttp.readyState==4 && xmlhttp.status==200){
					    document.getElementById("nb_disk_max").innerHTML=xmlhttp.responseText;
				  }
				}
				xmlhttp.open("GET","form_ajax.php?f=rack_disk_max&v="+str,true);
				xmlhttp.send();
			}
			
			
				function capacitedisk(str){
				if (str==""){
					  document.getElementById("capacite").innerHTML="";
					  return;
				} 
				if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
					  xmlhttp=new XMLHttpRequest();
				}
				else {// code for IE6, IE5
					  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
				}
				xmlhttp.onreadystatechange=function(){
				  if (xmlhttp.readyState==4 && xmlhttp.status==200){
					    document.getElementById("capacite").innerHTML=xmlhttp.responseText;
				  }
				}
				xmlhttp.open("GET","form_ajax.php?f=capacitedisk&v="+str,true);
				xmlhttp.send();
			}
		</script>

	</head>
	<body>
		<div id="global">
			<pre>
				<?php
					print_r ($_POST);
				?>
			</pre>
			<h1>Configuration Netapp</h1>
			<h4>(Kit d'Actualisation Technique des Informations Administratives)</h4>
			<form id="new_fiche" action="new_fiche.php" method="post" class="addline" target="_blank">
				<input type="hidden" value="<?echo $_POST['adresse_site'];?>" name="adresse_site"/>
				<input type="hidden" value="<?echo $_POST['cluster_nb_noeud'];?>" name="cluster_nb_noeud"/>
				<input type="hidden" value="<?echo $_POST['date_creation'];?>" name="date_creation" />
				<input type="hidden" value="<?echo $_POST['date_finale'];?>" name="date_finale"/>
				<input type="hidden" value="<?echo $_POST['id_fiche_client'];?>" name="id_fiche_client"/>
				<input type="hidden" value="<?echo $_POST['id_intervenant'];?>" name="id_intervenant"/>
				<input type="hidden" value="<?echo $_POST['id_label_model'];?>" name="id_label_model"/>
				<input type="hidden" value="<?echo $_POST['id_label_produit'];?>" name="id_label_produit"/>
				<input type="hidden" value="<?echo $_POST['id_type_cluster'];?>" name="id_type_cluster"/>
				<input type="hidden" value="<?echo $_POST['no_bdd'];?>" name="no_bdd"/>
				
				<?php $i=1;
				if ($_POST['id_type_cluster']== "3"){
				?>
								<div class="cadre">
								<h3>Informations sur les switch(s)</h3>
								<fieldset class="switchs-<?=$i?>">
									<table align="center">
										<tr>
											<td align="right"><label for="no_serie_switch-<?=$i?>">numero de série du switch</label> :</td>
											<td><input type="text" id="no_serie_switch-<?=$i?>" name="no_serie_switch-<?=$i?>" size="30" /></td>
											<td align="right"><label for="nb_ports_actifs-<?=$i?>">Nombre de ports actifs</label> :</td>
											<td><input type="text" id="nb_ports_actifs-<?=$i?>" name="nb_ports_actifs-<?=$i?>" size="30" /></td>
											<td align="right"><label for="fournisseur-<?=$i?>">Fournisseur</label> :</td>
											<td><input type="text" id="fournisseur-<?=$i?>" name="fournisseur-<?=$i?>" size="30" /></td>
											<td align="right"><label for="id_label_switch-<?=$i?>">Label du switch</label> :</td>
											<td>
												<?php
													combo_switchs($i);
												?>
											</td>
										</tr>
									</table>
								</fieldset>
								</div>
				<?php 
				}else{
				print ("");
				}
				?>
					
				
				<?php 
				
				while ($i <= $_POST['cluster_nb_noeud']){ ?>
					<!--DEBUT BOUCLE WHILE //-->
						<div class="sous_cadre">
							<h3>Contr&ocirc;leur</h3>
							<h5>Si syst&egrave;me Cluster : Indiquer les informations pour chacun des contr&ocirc;leurs</h5>
							<div class="sous_cadre">
								<h3>T&ecirc;te <?=$i?></h3>
								<table align="center">
									<tr>
										<td><label for="no_serie-<?=$i?>">Num&eacute;ro s&eacute;rie syst&egrave;me</label></td>
										<td><label for="hostname-<?=$i?>">Hostname</label></td>
									</tr>
									<tr>
										<td><input type="text" id="no_serie-<?=$i?>" name="no_serie-<?=$i?>" size="30" />
										</td>
										<td><input type="text" id="hostname-<?=$i?>" name="hostname-<?=$i?>" size="30" /></td>
									</tr>
								</table>
							</div>
							<div class="sous_cadre">
								<h3>Cartes Add-On dans le Produit</h3>
								<h5>Si le nombre de cartes est diff&eacute;rent, prendre le nombre le plus grand</h5>
								<fieldset class="addon-<?=$i?>">
								<label for="id_addon-<?=$i?>">Nom Addon</label> :
									<?php
										combo_addon($i);
									?>
								</fieldset>
							</div>
							<div class="sous_cadre">
								<h3>D&eacute;tails des Racks</h3>
								<h5>Remplir les champs ci-dessus et cliquer sur "Cr&eacute;er" : Si des disques sont dans le contr&ocirc;leur, indiquer T&Ecirc;TE &agrave; la place du No de s&eacute;rie</h5>
								<fieldset class="rack-<?=$i?>">
									<table align="center">
										<tr>
											<td align="right"><label for="no_serie_rack-<?=$i?>">Num&eacute;ro de s&eacute;rie</label> :</td>
											<td><input type="text" id="no_serie_rack-<?=$i?>" name="no_serie_rack-<?=$i?>" size="30" /></td>
											<td align="right"><label for="label_rack-<?=$i?>">Type de rack</label> :</td>
											<td>
												<?php
													combo_type_rack($i);
												?>
											</td>
											<td align="right"><label for="nb_disk-<?=$i?>">Nombre de disques</label> :</td>
											<td>
												<div id="nb_disk_max"><b>Attente modele rack...</b> </div>
											</td> 
										</tr>
										<tr>
											<td align="right"><label for="type_disk-<?=$i?>">Type de disque</label> :</td>
											<td>
												<?php
													combo_disk($i);
												?> 
											</td>
											<td align="right"><label for="capacite-<?=$i?>">Capacit&eacute;</label> :</td>
											<td>
												<div id="capacite"><b>Attente modele disque...</b> </div>
											</td>
											<td></td>
										</tr>
									</table>
								</fieldset>
							</div>
							<div class="sous_cadre">
								<h3>Licences</h3>
								<h5>Attention!! Si cluster, remplir les t&ecirc;tes</h5>
								<h4>Licences attach&eacute;es au syst&egrave;me: declar&eacute;s sur le contr&ocirc;leur Netapp</h4>
								<fieldset class="licencesattachees-<?=$i?>">
									<table align="center">
										<tr>
											<td align="right"><label for="licence-<?=$i?>">Type de licence</label> :</td>
											<td>
												<?php
													combo_licences($i);
												?>
											</td>
											<td align="right"><label for="nb_clients-<?=$i?>">Nombre de clients</label> :</td>
											<td><input type="text" id="nb_clients-<?=$i?>" name="nb_clients-<?=$i?>" size="30" /></td>
											<td align="right"><label for="bundle-<?=$i?>">Bundle</label> :</td>
											<td>
												<?php
													combo_bundles($i);
												?>
											</td>
										</tr>
									</table>
								</fieldset>
								<h4>Licences non attach&eacute;es au syst&egrave;me: avec num&eacute;ro de s&eacute;rie</h4>
								<fieldset class="licencesnonattachees-<?=$i?>">
									<table align="center">
										<tr>
											<td align="right"><label for="licences-<?=$i?>">Type de licence</label> :</td>
											<td>
												<?php
													combo_licences2($i);
												?>
											</td>
											<td align="right"><label for="no_serie_licence-<?=$i?>">Num&eacute;ro s&eacute;rie</label> :</td>
											<td><input type="text" id="no_serie_licence-<?=$i?>" name="no_serie_licence-<?=$i?>" size="30" /></td>
											<td align="right"><label for="nb_licences-<?=$i?>">Nombre de licence</label> :</td>
											<td><input type="text" id="nb_licences-<?=$i?>" name="nb_licences-<?=$i?>" size="30" /></td>
										</tr>
									</table>
								</fieldset>
							</div>
						</div>
					<!--FIN BOUCLE WHILE //-->
				<?php $i++;
				} ?>
				<input type="submit" value="Enregistrer" />
				<input type="button" value="Accueil" onClick="javascript:window.location.href='accueil.php';" />
			</form>
		</div>
		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
		<script src="fn.addline.min.js" type="text/javascript"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				$('.addline').addline({debug:false});
			});
		</script>
	</body>
</html>




page fonction.inc( pour les combo box):

Code:
<?php

## Connexion à la base "base_fsm"

$db = mysql_connect("localhost","root","") or die ("Erreur de connexion :". mysql_error() );

$maBase = mysql_select_db("base_fsm") or die (" Erreur de base : " . mysql_error() );



## Fonction pour afficher la liste déroulante des Types de Cluster

function combo_type_cluster() {
?>
<select name="id_type_cluster" onchange="cluster(this.value)" style="width:12em">
<option value="0" selected="selected"></option>	
<?php
	$MyRequest = "SELECT `id_type_cluster`, `label_type_cluster`, `nb_max_noeud` FROM `type_cluster` ORDER BY  `id_type_cluster`;";
	$MyExec = mysql_query($MyRequest);
	while($data = mysql_fetch_assoc($MyExec)){
?>
	<option value="<?=$data['id_type_cluster']?>"><?=$data['label_type_cluster']?></option>	
<?php
	}
?>
</select>
<?php
}

## Fonction pour afficher la liste déroulante des Intervenants

function combo_intervenant() {
?>
<select name="id_intervenant" style="width:20em">
	<option value="0" selected="selected" </option>	
<?php
	$MyRequest = "SELECT `id_intervenant`, `nom_intervenant`, `prenom_intervenant` FROM `intervenant`;";
	$MyExec = mysql_query($MyRequest);
	while($data = mysql_fetch_assoc($MyExec)){
?>
	<option value="<?=$data['id_intervenant']?>"><?=$data['prenom_intervenant']?> <?=$data['nom_intervenant']?></option>	
<?php
	}
?>
</select>
<?php
}

## Fonction pour afficher la liste déroulante des Clients

function combo_client() {
?>
<select name="id_fiche_client" style="width:20em">
	<option value="0" selected="selected"></option>	
<?php
	$MyRequest = "SELECT  `id_fiche_client`,`nom_client`,`adresse_site`,`cp_site`,`ville_site` FROM `fiche_client`;";
	$MyExec = mysql_query($MyRequest);
	while($data = mysql_fetch_assoc($MyExec)){
?>
	<option value="<?=$data['id_fiche_client']?>"><?=$data['nom_client']?> <?=$data['adresse_site']?>  <?=$data['cp_site']?>  <?=$data['ville_site']?></option>	
<?php
	}
?>
</select>
<?php
}


## Fonction pour afficher la liste déroulante des Marques(produits)

function combo_marque() {
?>
<select name="id_label_produit" onchange="produit(this.value)" style="width:12em">
	<option value="0" selected="selected"></option>	
<?php
	$MyRequest = "SELECT  `id_label_produit`,`marque` FROM `label_produit`;";
	$MyExec = mysql_query($MyRequest);
	while($data = mysql_fetch_assoc($MyExec)){
?>
	<option value="<?=$data['id_label_produit']?>"><?=$data['marque']?></option>	
<?php
	}
?>
</select>
<?php
}


## Fonction pour afficher la liste déroulante des Switchs

function combo_switchs($countswitch) {
?>
<select id="id_label_switch-<?=$countswitch?>" name="id_label_switch-<?=$countswitch?>" style="width:20em">
	<option value="0" selected="selected"></option>	
<?php
	$MyRequest = "SELECT  `id_label_switch`,`modele_switch`, `marque_switch`,`nb_ports` FROM label_switch";
	$MyExec = mysql_query($MyRequest);
	while($data = mysql_fetch_assoc($MyExec)){
?>
	<option value="<?=$data['id_label_switch']?>"><?=$data['modele_switch']?><?=$data['marque_switch']?><?=$data['nb_ports']?></option>	
<?php
	}
?>
</select>
<?php
}



## Fonction pour afficher la liste déroulante des Addons

function combo_addon($count) {
?>
<select id="id_addon-<?=$count?>" name="id_addon-<?=$count?>" style="width:20em">
	<option value="0" selected="selected"></option>	
<?php
	$MyRequest = "SELECT  `id_addon`,`nom_addon` FROM addon";
	$MyExec = mysql_query($MyRequest);
	while($data = mysql_fetch_assoc($MyExec)){
?>
	<option value="<?=$data['id_addon']?>"><?=$data['nom_addon']?></option>	
<?php
	}
?>
</select>
<?php
}



## Fonction pour afficher la liste déroulante des types de racks

function combo_type_rack($countrack) {
?>
<select name="id_modele_rack-<?=$countrack?>" id="id_modele_rack-<?=$countrack?>" onchange="rack_disk_max(this.value)" style="width:20em">
	<option value="0" selected="selected"></option>	
<?php
	$MyRequest = "SELECT  `id_modele_rack`,`label_rack`, `nb_disk_max` FROM modele_rack";
	$MyExec = mysql_query($MyRequest);
	while($data = mysql_fetch_assoc($MyExec)){
?>
	<option value="<?=$data['id_modele_rack']?>"><?=$data['label_rack']?></option>	
<?php
	}
?>
</select>
<?php
}



## Fonction pour afficher la liste déroulante des types de disques

function combo_disk($countdisk) {
?>
<select name="id_type_techno-<?=$countdisk?>" id="id_type_techno-<?=$countdisk?>" onchange="capacitedisk(this.value)" style="width:20em">
	<option value="0" selected="selected"></option>	
<?php
	$MyRequest = "SELECT  `id_type_techno`,`type_techno` FROM type_techno";
	$MyExec = mysql_query($MyRequest);
	while($data = mysql_fetch_assoc($MyExec)){
?>
	<option value="<?=$data['id_type_techno']?>"><?=$data['type_techno']?></option>	
<?php
	}
?>
</select>
<?php
}


## Fonction pour afficher la liste déroulante des types de licences attachees

function combo_licences($countlicences) {
?>
<select id="id_label_licences-<?=$countlicences?>" name="id_label_licences-<?=$countlicences?>" style="width:20em">
	<option value="0" selected="selected"></option>	
<?php
	$MyRequest = "SELECT  `id_label_licences`,`licences` FROM label_licences";
	$MyExec = mysql_query($MyRequest);
	while($data = mysql_fetch_assoc($MyExec)){
?>
	<option value="<?=$data['id_label_licences']?>"><?=$data['licences']?></option>	
<?php
	}
?>
</select>
<?php
}




## Fonction pour afficher la liste déroulante des bundles

function combo_bundles($countbundles) {
?>
<select id="id_label_bundle-<?=$countbundles?>" name="id_label_bundle-<?=$countbundles?>" style="width:20em">
	<option value="0" selected="selected"></option>	
<?php
	$MyRequest = "SELECT  `id_label_bundle`,`bundle` FROM label_bundle";
	$MyExec = mysql_query($MyRequest);
	while($data = mysql_fetch_assoc($MyExec)){
?>
	<option value="<?=$data['id_label_bundle']?>"><?=$data['bundle']?></option>	
<?php
	}
?>
</select>
<?php
}


## Fonction pour afficher la liste déroulante des types de licences non attaches

function combo_licences2($countlicences2) {
?>
<select id="id_label_licences-<?=$countlicences2?>" name="id_label_licences-<?=$countlicences2?>" style="width:20em">
	<option value="0" selected="selected"></option>	
<?php
	$MyRequest = "SELECT  `id_label_licences`,`licences` FROM label_licences";
	$MyExec = mysql_query($MyRequest);
	while($data = mysql_fetch_assoc($MyExec)){
?>
	<option value="<?=$data['id_label_licences']?>"><?=$data['licences']?></option>	
<?php
	}
	
?>
</select>
<?php
}
?>


page form_ajax.php:


Code:
<?php
	include ('includes/fonctions.inc');
### foction produit et cluster qui intervient dans la page ajouter 
	$fonction = $_GET["f"];
	if ($fonction == "produit"){
		$valeur = $_GET["v"];
		$MyRequest="SELECT id_label_model, modele, id_label_produit FROM label_modele WHERE id_label_produit = '".$valeur."'";
		$MyExec = mysql_query($MyRequest);
?>
		<select name="id_label_model">
			<option value="0" selected="selected">Choisir Mod&egrave;le...</option>	
			<?php
				while($data = mysql_fetch_assoc($MyExec)){
			?>
					<option value="<?=$data['id_label_model']?>"><?=$data['modele']?></option>	
			<?php
				}
			?>
		</select>
<?php
	}
	if ($fonction == "cluster"){
		$valeur = $_GET["v"];
		$MyRequest="SELECT `nb_max_noeud` FROM `type_cluster` WHERE `id_type_cluster` = '".$valeur."'";
		$MyExec = mysql_query($MyRequest);
		$Tmp_Cluster = mysql_fetch_assoc($MyExec);
		$Nb_Max_Noeud = $Tmp_Cluster['nb_max_noeud'];



?>
		<select name="cluster_nb_noeud">
		<option value="0" selected="selected">Choisir nombre de noeuds...</option>	
<?php		
		$c=1;
		while ($c<=$Nb_Max_Noeud){
?>
			<option value=<?=$c?>><?=$c?></option>
<?php
$c++;
		}
	
?>
	</select>

<?php
	}
	if ($fonction == "rack_disk_max"){
		$valeur = $_GET["v"];
		$MyRequest="SELECT `nb_disk_max` FROM `modele_rack` WHERE `id_modele_rack` = '".$valeur."'";
		$MyExec = mysql_query($MyRequest);
		$Tmp_rack_disk_max = mysql_fetch_assoc($MyExec);
		$nb_disk_max = $Tmp_rack_disk_max['nb_disk_max'];

?>
		<select name="nb_disk">
		<option value="0" selected="selected">Choisir nombre de disques du racks...</option>	
<?php		
		$s=1;
		while ($s<=$nb_disk_max){
?>
			<option value=<?=$s?>><?=$s?></option>
<?php
$s++;
		}
	}
?>
	</select>
	
	<?php
	if ($fonction == "capacitedisk"){
		$valeur = $_GET["v"];
		$MyRequest="SELECT `id_modele_disk`,`capacite`,`vitesse_de_rotation`,`id_type_techno` FROM modele_disk WHERE `id_type_techno` = '".$valeur."'";
		$MyExec = mysql_query($MyRequest);

?>
		<select name="capacite">
			<option value="0" selected="selected">Choisir capacite des disques...</option>	
			<?php
				while($data = mysql_fetch_assoc($MyExec)){
			?>
					<option value="<?=$data['id_modele_disk']?>"><?=$data['capacite']?><?=$data['vitesse_de_rotation']?></option>	
			<?php
				}
	}
			?>
		</select>
 
Nouveau WRInaute
La partie qui ne fonctionne pas très bien, est au niveau des détails des racks.
 
Discussions similaires
Haut