Déplacement un élément d'une liste vers une autre

Eléphant du PHP | 122 Messages

24 déc. 2005, 18:50

Je n'arrive pas à trouver les bons mots clés sur google pour trouver un tutoriel compréhensible sur le probleme suivant:

J'ai 4 groupe (groupe 1, groupe 2, groupe 3 et groupe 4) et 5 utilisateurs (user1, user2, user3, user4 et user5).

Je souhaite faire une page affichant a gauche la liste de mes utilisateurs et à droite mes 4 groupes l'un au dessus de l'autre avec un petit bouton >> a la droite de chacun. On selectionne un user à gauche, et on clique sur le bouton correspondant au groupe souhaite. Au click sur ce bouton, l'user part de la liste gauche et va dans la liste droite du groupe correspondant au bouton activé (et éventuellement vice versa).

Connaissez vous un tutoriel ayant traité ce problème?

D'avance merci et bonnes fêtes à tous.

Mammouth du PHP | 1311 Messages

24 déc. 2005, 18:52

salut
comment veut tu le faire en php ou en js??

Eléphant du PHP | 122 Messages

24 déc. 2005, 18:56

j'avoue que j'aimerai assez en php d'abord car je le maitrise mieux. Mais j'ai commence a faire quelques petits scripts en js et meme si je maitrise pas ca m'interesserait de me faire les dents sur ce probleme...

Mais bon, si déjà j'ai une soluce c'est cool!!!

Mammouth du PHP | 1311 Messages

24 déc. 2005, 19:02

une brique de solution
<form action="#" name="frm" id='frm' >
<fieldset><legend>administration des comptes</legend>
	
	<div>
		<label>administrateur produit<img src="template/templates/admin/img/info.gif" alt="info" title="info" onclick='display("ad_prod","getGroupData")'/></label>
		<select id="ad_prod" size="10">
<option value="user">bourique</option>
</select>

	</div>
	<div>
		<img src="template/templates/admin/img/leftrow.jpg" class="left" onclick="moveField('ad_comm','ad_prod');"/>
		<img src="template/templates/admin/img/rightrow.jpg" class="right" onclick="moveField('ad_prod','ad_comm');"/>
	</div>
	<div>
		<label>administrateur formation<img src="template/templates/admin/img/info.gif" alt="info" title="info" onclick='display("ad_comm","getGroupData")'/></label>
		<select id="ad_comm" size="10">

<option value="user">jacob</option>
</select>
et le js
function moveField(source,destination)
{
	/*modification javascript*/
	var src=document.getElementById(source);
	var dest=document.getElementById(destination);
	var indexS=src.options.selectedIndex;
	var indexD=dest.options.length;
	if(indexS<0) return;
	var valeur=src.options[indexS].text;
	src.options[indexS]=null;
	a = new Option(valeur);
	dest.options[indexD]=a;

	/*envoi a php*/
	var val =new Array();
	val['id']=valeur;
	val['dest']=destination;
	var link=buildLink('adminGroupe','moveData',val);
	requete(link,'GET');
}
c'est juste un truc que vient de faire pour ajax tu peut le pendre et le modifier pour js

quand a php c'est le meme principe sauf que tu fait une sauvegarde de donnée et tu reaffiche

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 déc. 2005, 20:30

tu peut peut etre aussi jetter un oeil a ceci

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 122 Messages

25 déc. 2005, 17:19

merci beaucoup, je vais prendre un peu dans vos deux exemples. par contre j'ai un peu de mal à comprendre comment je vais faire pour, a partir d'une liste pouvoir ajouter ou retrancher dans plusieurs listes.

Voici une démo non dynamique de ce que je souhaite obtenir:


http://www.prono-football.com/pronoleag ... vision.php

en fait, a gauche on a une liste de joueurs et à droite on a n divisions (n est donne par une variable de session). au milieu, on a un bouton, un lien ou ce qu'on veut et qui permet de déplacer des noms d'un côté ou de l'autre , pour chaque division. avez-vous une idée ou une piste?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 déc. 2005, 18:36

Avant tout ce post devrait etre déplacé sans le Forum Javascript (si tu tiens a rester au javascript)

j'ai pas regardé le code de jeff de près mais dans le lien que j'ai proposé tu as un champ de type bouton:
<INPUT type="button" value="Ajouter >>>" onClick="Deplacer(this.form.liste1,this.form.liste2)">
suffit donc d'en mettre un pour chauqe liste en changeant les paramètres passés à la fonction Deplacer().

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 122 Messages

25 déc. 2005, 18:48

ok je ne sais pas comment on fait pour le déplacement en javascript. J'essaye et je donne un feedback.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 déc. 2005, 18:50

ok je ne sais pas comment on fait pour le déplacement en javascript. J'essaye et je donne un feedback.
Doit etre fait par un modo bien veillant :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 122 Messages

25 déc. 2005, 21:03

bon j'avance dans le probleme. Maintenant, j'affiche bien et tout les boutons marchent bien. Maintenant, le probleme est de pouvoir récupérer les données pour chaque élément de droite.

Par exemple, au click sur soumettre, j'aimerai savoir comment faire pour pouvoir récupérer les données de chacune des listes de droite. Je sais le faire quand c'est du champ texte (avec un usage de array()) mais là avec un select, je sais pas.

voilà l'url pour voir la chose visuellement: http://localhost/prono-football/pronole ... ascule.php
PS: si un modo pouvait déplacer ce post dans javascript, mais le probleme c'est que c'est du javascript et du php en meme temps...

merci

Mammouth du PHP | 1311 Messages

25 déc. 2005, 21:56

ta page n'est pas dispo 404

oh le boulet j'avais pas vu que c'etait en local :langue:

Eléphant du PHP | 122 Messages

25 déc. 2005, 22:02

t'a raison je suis un gros boulet (lol)

voila l'url http://www.prono-football.com/pronoleag ... ascule.php

merci
---
Commencer c'est essayer...
Et essayer, c'est parfois finir...

Mammouth du PHP | 1311 Messages

25 déc. 2005, 22:12

Par exemple, au click sur soumettre, j'aimerai savoir comment faire pour pouvoir récupérer les données de chacune des listes de droite. Je sais le faire quand c'est du champ texte (avec un usage de array()) mais là avec un select, je sais pas.
ton probleme est de recuper tous ce qui est dans tes select??
si oui tu met ton select en multiple et avec js tu les selctionne tous sur l'evenement onsubmit de ton bouton d'envoi

Eléphant du PHP | 122 Messages

26 déc. 2005, 01:43

bon j'avoue que je comprend ce que tu me dis et le principe mais par contre je suis trop novice en js pour récupérer des information dans un select en multi. je vais chercher si je trouve le nom de la propriété...
---
Commencer c'est essayer...
Et essayer, c'est parfois finir...

Eléphant du PHP | 122 Messages

26 déc. 2005, 02:00

j'ai avancé dans ma compréhension. Mais en fait, il se pose un deuxième probleme: effectivement le submit va prendre quel select si il y en a plusieurs (n divisions). est-ce qu'on peut mettre un tableau dans un tableau ($var[][])?
---
Commencer c'est essayer...
Et essayer, c'est parfois finir...