Vous n'êtes pas identifié(e).
Voila toujours dans mon Projet BTS, j'ai avancé et j'arrive à un endroit .. je m'explique.
J'ai réalisé un script CGI qui va me lister toute les Adresses Mac du reseaux puis ca me les ajoutes dans la base de donnée directement, apart si celle si y es deja.
Sous cette forme :
Adresse_Mac2 : Nom_Eleve2:
xx:xx:xx:xx:xx:xx (Met rien)
xx:xx:xx:xx:xx:xx (Met rien)
xx:xx:xx:xx:xx:xx (Met rien)
etc
Ca, ca fonctionne.
Ensuite j'ai un programme en .csv ou le professeur va rentrer les Nom, Prenom etc de chaque éléves et ca les ajoutera dans la base de donnée.
Bref j'en arrive ou je bloque :
Sur mon interface web,je vais avoir un page de ce genre :
____________________________________________________________________________________________________
Identifier les adresses mac du reseaux :
Adresse N°$i : ( $i incrémenté a chaque fois, ici 1 )
xx:xx:xx:xx:xx:xx ( Je récupere sous forme de tableau ma table Adresse_Mac2, ici la 1ere Adresse Mac )
[Choisir votre eleve] ( J'affiche sous la forme d'une liste déroulante, tout les Noms rentré dans la base de donnée )
-----
Adresse N°$i : ( ici 2 )
xx:xx:xx:xx:xx:xx (Ici la 2eme Adresse_Mac )
[Choisir votre eleve] ( Je réaffiche la liste précédente en retirant la posibilité de choisir le Nom précedent )
-----
Cela ce fait jusqu'a ce que Adresse_Mac2 soit vide.
____________________________________________________________________________________________________
Mes soucis :
-L'affichage du tableau est correcte, mais il m'affiche la liste déroulante que pour la 1ere adresse mac, aprés je vois bien le select dans les autre ligne, mais il n'y a rien dans le select.
-Des que l'utilisateur aura rentré un nom en face de l'adresse mac, il faut que je rentre ce Nom dans Nom_Eleve2. J'arrive à le faire si il y à une seul adresse mac, mais si il y à plusieur variable à envoyer .. enfin j'y suis pas encore
J'ai cherché sur Internet, et j'arrive pas a faire :
- Afficher plusieur fois une Liste déroulante issu d'une requete SQL et qui retire la possibilité de choisir le choix précédent.
J'ai juste vu : Me!NomListe.Requery .. je me renseigne sur ca pour le moment =X
J'ai vu qu'utiliser du AJAX ou JAVASCRIPT se ferais forcement, qu'en PHP je pourrais surment pas .. mais je demande comme meme.
<table border=outset>
<td colspan=3 bgcolor="white">
<h2><center>Identifier les adresses mac du reseaux :</center></h2></td>
<tr>
<form method="GET" action="">
<?php
$i=1; // initialise i
while ( $LectureAffichageAdrM2 = mysql_fetch_array( $LesAdrM2 )) // Debut boucle while affichage tableau adresse mac
{
echo "<td><i>Adresse Mac N°$i</i> :<td>";
echo "<b><center>".$LectureAffichageAdrM2['Adresse_Mac2'];"</center></b>";
?>
<td>
<select name="mon_champmac" onchange="changemac(this.options[this.selectedIndex].innerHTML)">
<option>
<?php
echo $LectureAffichageAdrM2['Adresse_Mac2']; // affiche adresse mac
?>
</option>
</select>
<!-- Debut while liste déroulante-->
<td>
<select name="mon_champnom" onchange="document.location.reload()">
<?php
while ($LectureAffichageNom = mysql_fetch_array( $ComparaisonNom ))
{
?>
<OPTION>
<?php
echo $LectureAffichageNom['Nom']; // affiche liste déroulante
?>
</OPTION>
<?php
}
?>
</SELECT>
<!-- Fin while liste déroulante !-->
<?php
echo "<tr>";
$i++; //incremente i
}
?>
<tr><td colspan=3><center>
<br><br>
<input type="hidden" name="ma_valeurnom" id="new_valeurnom" /> <!-- recupere le nom et ladresse mac obtenue!-->
<input type="hidden" name="ma_valeurmac" id="new_valeurmac" />
<input type="submit" value="Assigner"/>
<input type="button" onclick="history.go(-1)" value="Retour"></center>
</table>
<?php
}
#########################################################CHOISIR LE NOM DES ELEVE A METTRE ADRESSE MAC ###########################################################
##########################################################################################################################################
$ma_valeurnom = $_GET['mon_champnom'];
$ma_valeurmac = $_GET['mon_champmac'];
if ($ma_valeurnom)
{
?>
<center><table border=outset bgcolor="grey"><td width = 300><center>Confirmer vos choix :<br><br><center>
<?php
$CompareNomEleve2=mysql_fetch_array($ListerNomEleve2);
if ($ma_valeurnom!=$CompareNomEleve2['Nom_Eleve2'])
{
mysql_query("UPDATE Info_PC_IRIS2 SET Nom_Eleve2='$ma_valeurnom' WHERE Info_PC_IRIS2.Adresse_Mac2='$ma_valeurmac'");
echo "Dedan<br>";
}
else
{
echo " Ce Nom est deja associé à une Adresse Mac<br>";
}
echo "L'eleve <i><b>$ma_valeurnom</b></i> va avoir l'Adresse Mac <i><b>$ma_valeurmac</i></b>";
?>
</form>
<input type="button" onclick="history.go(-1)" value="Retour"></center>
<?php
}
Voilaa, merci d'avoir pris la peine de lire ce message
Coordialement,
ElevedIRIS.
Dernière modification par ElevedIRIS (09-03-2010 14:42:32)
Hors ligne
Il te faut créer un array à partir des résultats de la requête. Et ensuite utiliser cet array pour créer tes options.
Car mysql_fetch_XXX avance le pointeur à chaque itération, donc quand tu arrives à la fin il ne revient pas au début. De là viennent tes selects vides.
Hors ligne
je ne vois aucun mysql_query dans le code (hors mis l'update à la fin).
Tu n'est pas clair dans ce que tu indique.
Sur le principexTG à répondu, tu mets le contenu de ta liste dans un tableau php afin de l'afficher plusieurs fois, tu peut le faire avec ajax pour ajouter dynamiquement des champs select à la volée, il te faudra nommer tes champs de façon dynamique (par exemple eleve[] et adresse[])
tu traite le tout avec un foreach pour obtenir la clef d'un tableau et avoir les données équivalente des deux.
@+
Il en faut peu pour être heureux pompompompompompompompompompompom
Hors ligne