garder des données en mémoire dans une liste déroulante - HTML/CSS - Programmation
Marsh Posté le 01-08-2012 à 09:04:04
Ben il faut que tu "stockes" le contenu de la liste 2 (juste les ID), mettons dans un champ caché (ex : une chaîne contenant les ID séparés par des virgules) et quand tu affiche ta page, tu check si ce champ caché n'est pas vide. S'il n'est pas vide, dans la construction de ta liste 1, tu exclus les ID de la liste 2 (via une requête SQL)...
Edit : à la vue de ton code, je me dis que ça serait bien que tu apprennes à faire du html (ou xhtml) et du css proprement <center>, faut plus l'utiliser, le javascript intrusif dans le html, c'est pas bien, la mise en page par tableau, on faisait dans les années 90 ... Et mélanger le html et le php, c'est pas terrible non plus, tu devrais regarder du côté du design pattern "MVC". Quelque chose aussi me dit que tu auras peut-être des pbs de charset (cf les é dans ton code posté)...
Marsh Posté le 01-08-2012 à 09:17:31
Oki merci de ta réponse je vais voir ce que je peux faire ! ^^
Pour ce qui est du Html et css, je suis entièrement d'accord avec toi, mais en réalité c'est un projet que je reprend d'une ancienne personne qui a été codé entièrement en procédurale sous forme de dizaines de fichiers où tout ce mélange ( bref...) , et étant donné la Deadline que j'ai pour venir a bout du projet, je n'ai pas pu mettre en place de MVC, je fait plus du bricolage qu'autre chose !
Merci encore de ta réponse, bonne journée.
Marsh Posté le 01-08-2012 à 10:20:08
C'est toujours la plaie de reprendre du vieux code tout moisi Bon courage à toi...
Marsh Posté le 31-07-2012 à 11:08:28
Bonjour a tous !
Je suis actuellement en train de développer une application pour mon sujet de stage et je bloque, c'est donc pour cela que je viens faire appel à vôtre savoir
Avant de poster mon code, je vous explique le principe.
J'ai une liste déroulante (Liste 1) que je remplie avec des données présentes dans ma BDD MySQL ( Les noms des personnes inscrites ). Avec ceci j'ai deux boutons (un bouton "Je suis là" et un autre "Je m'en vais" ). Et pour finir une seconde liste (Liste 2) qui elle est vide. Lorsque je sélectionne un utilisateur dans "Liste 1" et que j'appuie sur "Je suis là", cela me bascule le nom dans la "Liste 2". Et vice versa avec le bouton "Je m'en vais". Tout cela fonctionne bien.
Mon problème : Lorsque je refresh ma page, les données que j'ai passé dans ma "Liste 2" ne s'affiche plus et réintègre ma "Liste 1" à mon grand regret
Voici le code :
<SCRIPT LANGUAGE="JavaScript">
//Ici le script javascript qui va nous permettre de gérer l'affichage des 2 listes (ListePrésent et ListeInscrit).
function Deplacer(liste1, liste2, id_action) {
if (liste1.options.selectedIndex>=0) {
var id_personne = liste1.options[liste1.options.selectedIndex].value;
i = new Option(liste1.options[liste1.options.selectedIndex].text,liste1.options[liste1.options.selectedIndex].value);
liste2.options[liste2.options.length] = i;
if ( liste1.options[liste1.options.selectedIndex] != undefined )
liste1.options[liste1.options.selectedIndex] = null;
//alert(liste1.options[liste1.options.selectedIndex].text + " - " + liste1.options[liste1.options.selectedIndex].value);
// Requête d'enregistrement par GET
var xhr_object = null;
if ( window.XMLHttpRequest )
xhr_object = new XMLHttpRequest();
else if( window.ActiveXObject )
xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
else {
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
return;
}
if ( xhr_object != null ){ // Vérif si object existe
if ( id_action == 1 ){
// Quelqu'un arrive
xhr_object.open("GET", "enregistrerArriveDepart.php?id_personne=" + id_personne + "&action=arrive", false);
}
else{
// Quelqu'un part
xhr_object.open("GET", "enregistrerArriveDepart.php?id_personne=" + id_personne + "&action=part", false);
}
// Pas d'envoie de données par POST
xhr_object.send(null);
// Vérif requete GET OK
if ( xhr_object.readyState == 4 ){
// Recup réponse HTTP
reponse = xhr_object.responseText;
alert(reponse);
}
}
}
else{
alert("Vous n'avez rien selectionné" );
}
}
</SCRIPT>
<center>
<table width="700" border="0" cellspacing="1">
<tr>
<td class="tableau_rechercher">
<b>Rechercher votre nom :</b>
<br><br>
<center>
<form name="formAjout" method="get" value="text">
<?php $sql = mysql_query("SELECT * FROM personnes ORDER BY nom" );?>
<SELECT name="listeInscrit" type="text" >
<?php
while( $choixSelection = mysql_fetch_array($sql) )
{
if( !empty($_GET['id_personne']) && $_GET['id_personne'] == $choixSelection['id_personne'] ){ $selected = "selected='selected'"; } // Si l'id = celui traité on séléctionne l'option.
else { $selected = ""; } // sinon on ne séléctione pas cette option.
echo "<option value='".$choixSelection['id_personne']."' ".$selected.">".$choixSelection['nom']." ".$choixSelection['prenom']."</option>"; // on affiche l'option.
}
?>
</SELECT>
<td align="center">
<input type="button" value="Je suis là !" onClick="Deplacer(this.form.listeInscrit,this.form.listePresent, 1)" >
<br><br>
<input type="button" value="Je m'en vais !" onClick="Deplacer(this.form.listePresent,this.form.listeInscrit, 2)">
</td>
<td align="center">
<p><b>Liste des personnes présentes</b></p>
<SELECT align=top name="listePresent" size=6 style="width:200px"></SELECT>
</td>
</form>
</center>
</td>
</tr>
</table>
</center>