bascule entre plusieurs listes vers une liste unique sur la même page

Petit nouveau ! | 8 Messages

27 juil. 2016, 16:18

Bonjour,

J'ai un script principal qui filtre des agents particuliers (personnes avec nom, prénom, date de naissance....) et qui propose pour chacun de ces agents une liste d'agents parmi lesquelles on doit en retenir un.

Voici le bout de code du programme principale qui appelle autre script (interface_jointures.php)

Code : Tout sélectionner

$query= @mssql_query($sql_query, $sqlconn); $tab=array(); //require 'liste agents retenus.php'; while ($row = mssql_fetch_array($query,MSSQL_ASSOC)) { //echo $row['Nom']; if(preg_match("/".$rh_nom_nettoye."*$/"."i",$row['Nom']) || preg_match("/^".$rh_prenom_nettoye."/"."i",$row['Prenom'])){ $tab[$row['UserId']]['nom']=$row['Nom'] ; $tab[$row['UserId']]['prenom']=$row['Prenom'] ; $tab[$row['UserId']]['DateNaissance']=$row['DateNaissance']; $tab[$row['UserId']]['Numen']=$row['Numen']; $tab[$row['UserId']]['Numind']=$row['Numind']; } } if($query === false) { print "ERREUR: SQL: impossible d'executer la requete \"$sql_query\": " . mssql_get_last_message() . "\n"; my_exit(1); } else { if(!mssql_num_rows($query)) { } else { require 'interface_jointures.php'; //require_once 'liste agents retenus.php'; //inclusion de l'interface assistant jointures qui fait des propositions //récupération d'un tableau des userID des agents proposés et retenus } } mssql_free_result($query);


Voici le code de l'autre script (interface_jointures.php qui assistant qui affiche les propositions pour les agents concernés )qui est appelé par le principal:

Code : Tout sélectionner

<HTML> <HEAD> <TITLE></TITLE> <SCRIPT LANGUAGE="JavaScript"> function Deplacer(l1,l2) { if (l1.options.selectedIndex>=0) { o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value); l2.options[l2.options.length]=o; l1.options[l1.options.selectedIndex]=null; }else{ alert("Aucun agent proposé sélectionné"); } } var obj=document.getElementsByName("liste1"); var id=ob[0].value; /* function afficher(){ alert('agent'+obj[0].value+'nom'+ "<?php if(isset($_POST['liste1'])){echo $_POST['liste1']; } ?>" ); }*/ function afficherbis(){ alert('agent'+ obj[0].value+ 'nom' + "<?php echo $tab[28559]['nom'] ; ?>" ); } function confirme() { var id= obj[0].value; var confirmation = confirm( "Voulez vous vraiment mettre à jour cet agent avec pour id: ?"+id ) ; if( confirmation ) { document.location.href = "interface_rh.php?idAgent="+id ; alert( "<?php echo $tab2[0] ; ?>"); } } </SCRIPT> </HEAD> <BODY bgcolor="#FFFFFF"> <FONT FACE="Arial" SIZE='-1' COLOR="#000099"> <CENTER><BIG><B>Assistant jointures</B></BIG></CENTER> <BR> </A></B><BR> <BR> Selectionner pour chaque agent une proposition<BR><BR> <FORM name="formulaire" action="" method="post" enctype="multipart/form-data"> <TABLE><TR> <TD align="center"><B><FONT size="2">Agents propos&eacutes</FONT></B><BR> <SELECT align=top name="liste1" size=6 style="width:500px"> <?php foreach ($tab as $id=>$p): ?> <OPTION value="<?php echo $id ?>" <?php if($liste1 == $id){ print 'selected="selected"' ; } ?>><?php echo $p['nom'].' '.$p['prenom'].' '.$p['DateNaissance'].' '.$p['Numen'].' '.$p['Numind'] ?></OPTION> <?php endforeach; ?> </SELECT> </TD> <TD align="center"> <INPUT type="button" value="Ajouter >>>" onClick='Deplacer(this.form.liste1,this.form.liste2)'> <BR><BR> <INPUT type="button" value="<<< Enlever" onClick="Deplacer(document.forms['form1'].liste3,this.form.liste1)"> </TD> <TD align="center"><FONT size="2"><B>Agents retenus</B></FONT><BR> <SELECT type=hidden align=top name="liste2" size=6 style="width:500px"> <OPTION value="10">----------------------</OPTION> </SELECT> </TD> <TD align="center"> <INPUT type="submit" name="envoyer" value="valider" " /> <a href="interface_rh.php?idAgent=$id">valider</a> </TD> </TR></TABLE> <SCRIPT language="javascript"> // Astuce pour Netscape qui ne supporte pas style="width:100" // Donc : création d'une ligne pour initialiser la largeur puis suppression par ce javascript document.formulaire.liste2.options.length=0; </SCRIPT> </FORM> <div name="agents_retenus"> <?php require_once 'liste agents retenus.php'; ?> </div> <BR> </FONT></BODY></HTML>

Code liste agents retenus.php

Code : Tout sélectionner

<HTML> <HEAD> <TITLE>Tout JavaScript.com - Info Bulle DHTML</TITLE> <SCRIPT LANGUAGE="JavaScript"> function Deplacer(l1,l2) { if (l1.options.selectedIndex>=0) { o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value); l2.options[l2.options.length]=o; l1.options[l1.options.selectedIndex]=null; }else{ alert("Aucun agent proposé sélectionné"); } } </SCRIPT> </HEAD> <FORM name="form1"> <TR> <TD align="center"><FONT size="2"><B>Agents retenus</B></FONT><BR> <SELECT align=top name="liste3" size=6 style="width:500px"> <OPTION value="10">----------------------</OPTION> </SELECT> </TD> </TR> </FORM>
Mon objectif: je veux faire basculer les choix des agents retenus pour chaque liste vers une liste unique qui contiendra les résultats (dans mon cas dans liste3).

En d'autres termes faire migrer les choix des agents des liste 1 ( car en fait l'interface_jointures test appelé plusieurs fois )
vers liste3. En fait à l'avenir je ne conserverai que liste 3 qui s'appellera liste2. Mon liste2 actuel dans mon code est répeté plusieurs fois.Actuellement liste3 ne se met pas à jour lors des clics sur les boutons ajouter et Enlever

Pouvez-vous m'aider à construire une interface simple ?

Merci :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

28 juil. 2016, 10:01

salut,

a vu de nez tu as besoin de cela faq-tutoriels/listes-liees-avec-html-ja ... 55580.html

ps <SCRIPT LANGUAGE="JavaScript"> c'est déprécié, utilise <script type="text/javascript"> a la place.
de plus c'est plus simple à lire de coder le html en minuscule ;)

@+
Il en faut peu pour être heureux ......