Sélection d'utilisateurs

Mammouth du PHP | 545 Messages

18 sept. 2007, 20:51

Bonjour,

Je voudrais arriver à sélectionner des utilisateur dans une liste pour les faire apparaître dans une autre ! Un peu comme ceci:
Image
Je pense que la meilleure façon est d'utiliser une fonction JavaScript mais voilà, je ne suis pas un connaisseur en la matière ... c'est pourquoi je demande un petit coup de main !
Voici une partie de mon code php:
<table width="100%" border="0" cellspacing="10" cellpadding="2">
  <tr>
    <td width="50%" valign="top"><table width="100%" border="0" cellspacing="10" cellpadding="0">
  <tr>
    <td>Coach(s)</td>
  </tr>
  <tr valign="middle">
    <td><input type="text" name="textfield" />
      <img src="http://www.kain-buyere.be/components/com_pms/images/userlist.png" alt="" name="users" width="20" height="20" id="users" /></td>
  </tr>
  <tr>
    <td></td>
  </tr>
</table>
</td>
    <td width="50%" valign="top"><table width="100%" border="0" cellspacing="10" cellpadding="0">
      <tr>
        <td>Utilisateur(s)</td>
      </tr>
      <tr>
		<td>
		<select name="userslist" size="5" multiple="multiple" id="userslist">
		  <?php
		  if ( count($coach) > 0 ){
			foreach ($coach as $coachlist){
		?>
		  <option value="<?php echo $coachlist->id;?>" alt="<?php echo $coachlist->name;?>"><?php echo $coachlist->username;?></option>
		  <?php }
		}?>
		  </select>
		</td>
		
		</tr>
      <tr>
        <td><input type="submit" name="section" value="<<" onClick="selection(userslist.coach);"/></td>
      </tr>
    </table></td>
  </tr>
</table>
Maintenant, c'est la fonction JS qui devient intéressante car inexistante :

Code : Tout sélectionner

// **************************** Fonction 'Selection du coach' *************************** function selection(coach){ } // **************************** Fin de la fonction 'Selection du coach' ***************************
Qui peut m'aider sur ce coup ... suis-je déjà dans le bon ?


Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

ViPHP
AB
ViPHP | 5818 Messages

18 sept. 2007, 22:26

Bon sur le principe tu peux faire quelque chose comme

Code : Tout sélectionner

<script type="text/javascript"> function input_fich(fich) { var content_input = document.getElementById("valeur_temoin").value; var input = document.forms['formulaire'].valeur_temoin; input.focus(); if (content_input != '') {input.value = content_input+','+fich;} else {input.value = fich;} } </script> </head> <body > <form id="formulaire" method="post" action="<?php echo $_SERVER['PHP_SELF']?>"> <input type="submit" value ="ok"> <input type="text" id="valeur_temoin" name="resultat" /> </form> <a onclick="input_fich('<?php echo 'ma sélection1'?>')" style="cursor:pointer">ma sélection1</a> <a onclick="input_fich('<?php echo 'ma sélection2'?>')" style="cursor:pointer">ma sélection2</a> </body> </html>
Dans ce code (il manque des balises html avant la balise script), si on sélectionne deux noms consécutifs, le second s'ajoute au premier après avoir mis une virgule à la suite du premier (comme le demande ton formulaire)

Ton seul petit travail sera de commenter ce code (c'est assez simple) et de l'adapter à ton code :wink:

Mammouth du PHP | 545 Messages

18 sept. 2007, 23:06

Donc dans mon cas, le code html donne ceci:
<tr>
    <td>
	<form id="formulaire" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
      <input type="text" id="valeur_temoin" name="affichage" />
        <input name="submit2" type="submit" value ="Ok" />
    </form>    </td>
    <td><?php
		  if ( count($coach) > 0 ){
			foreach ($coach as $coachlist){
		?>
		
		<a onclick="input_fich('<?php echo $coachlist->username;?>')" style="cursor:pointer"><?php echo $coachlist->username;?></a>
		
		
		<?php }
		}?></td>

  </tr>
Oui mais je voudrais que les proposition soient présentés dans une liste de sélection ... est-ce possible ?

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

ViPHP
AB
ViPHP | 5818 Messages

19 sept. 2007, 02:05

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans titre</title> <script type="text/javascript"> <!-- function input_fich(fichier) { var content_input = document.getElementById("valeur_temoin").value; var input = document.forms['formulaire'].valeur_temoin; input.focus(); if (fichier != '') { if (content_input != '') {input.value = content_input+','+fichier;} else {input.value = fichier;} } } //--> </script> </head> <body> <form id="formulaire" method="post" action="<?php echo $_SERVER['PHP_SELF']?>"> <input type="submit" value ="ok"> <input type="text" id="valeur_temoin" name="affichage" /> </form> <form> <select name="menu" onchange="input_fich(menu.options[selectedIndex].value)"> <option value="" disabled="disabled" selected="selected">Choisissez</option> <option value="<?php echo 'ma sélection1'?>">ma sélection1</option> <option value="<?php echo 'ma sélection2'?>">ma sélection2</option> </select> </form> </body> </html>
Cela devrait te convenir. Cela fonctionne avec IE7 et FF.
Faudrait comprendre ce code ça te feras un bon exercice. Deux adresses www.toutjavascript.com et www.selfhtml.org Commences par le premier lien et les premiers tutos.

Mammouth du PHP | 545 Messages

19 sept. 2007, 09:35

Au final est grâce à AB, voici mon code JS:

Code : Tout sélectionner

// **************************** Fonction 'Selection du coach' *************************** function input_fich(fichier) { var content_input = document.getElementById("coach").value; var input = document.forms['coaching'].coach; input.focus(); if (fichier != '') { if (content_input != '') {input.value = content_input+','+fichier;} else {input.value = fichier;} } } // **************************** Fin de la fonction 'Selection du coach' ***************************
Voici mon code html:
<td width="50%" valign="top">
	<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="10">
		<tr>
			<td>Coach(s)</td>
		</tr>
		<tr valign="middle">
			<td>
			<form id="coaching" method="post" action="<?php //echo $_SERVER['PHP_SELF']?>">
			<input name="affichage" type="text" id="coach" value="" />
			<img src="http://www.kain-buyere.be/components/com_pms/images/userlist.png" alt="" name="users" width="20" height="20" id="users" />
			</form>
			</td>
		</tr>
		<tr valign="middle">
			<td><form><input name="submit2" type="submit" value ="ok" /></form></td>
		</tr>
	</table>
	</td>

	<td width="50%" valign="top">
	<table width="100%" border="0" cellspacing="10" cellpadding="0">
		<tr>
			<td>Utilisateur(s)</td>
		</tr>
		<tr>
			<td>
			<form>
			<select name="menu" size="5" onchange="input_fich(menu.options[selectedIndex].value)">
			<option value="" disabled="disabled" selected="selected"></option>
			<?php
				if ( count($coach) > 0 ){
					foreach ($coach as $coachlist){
			?>
			<option value="<?php echo $coachlist->username;?>"><?php echo $coachlist->username;?></option>
			<?php
					}// foreach
				}// if
			?>
			</select>
			</form>
			</td>
		</tr>
		<tr>
			<td></td>
		</tr>
	</table>
Le fonctionnement est presque comme je l'attendais ... pour l'heure, je renvois un nom duquel je vais devoir retirer l'id lors de la validation du formulaire ! Pas de précipitation, je n'ai pas encore créé une table à cette effet ! ! !

En tout cas merci à AB
A+
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 545 Messages

27 sept. 2007, 10:03

Salut,

Vous allez me prendre pour un fou mais j'ai un doute sur la gestion futur de l'enregistrement !

1. Comment bien formater ma table qui recevra le nom des utilisateurs ?
2. N'est-il pas plus intéressant de stocker l'ID de l'utilisateur ?

Dites-moi si je me trompe où si vous avez une meilleure idée !
1. Il y a 2 possibilités pour stocker :
  • Tout à la queue leuleu (dans le même enregistrement) et je ferai une fonction pour tout séparer lorsque j'en aurais besoin,
    Je fais une fonction avant le stockage en table pour séparer chacun des utilisateurs ... peut-être un problème de facilité à la mise à jour ?
2. Visuellement, c'est très bien mais n'est-il pas plus intéressant de stocker l'ID de l'utilisateur ? Dans ce cas, j'avais prévu de stocker dans un champ caché les ID et d'enregistrer ce champ ! Comment dois-je modifier ma fonction pour qu'elle fasse cela en plussi vraiment il y a un intérêt ?

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Eléphanteau du PHP | 24 Messages

24 oct. 2007, 10:01

Bonjour,
j'ai un peu le meme besoin, et aprés avoir testée les solutions de sebe et AB, elles correspondent a mes besoins sauf qu'il n'est pas possible de supprimer une selection aprés avoir selectionné un element de la liste....

Autre chose, et il possible de changer le input de destination par un select? de maniere a faire "transvaser" les elements choisis d'une liste a une autre, et vice versa....

Quelqu'un a ca dans ces tirroirs???

Merci d'avance,
A+
VooDoo

Mammouth du PHP | 545 Messages

24 oct. 2007, 10:17

Salut,
elles correspondent a mes besoins sauf qu'il n'est pas possible de supprimer une selection aprés avoir selectionné un element de la liste....
J'ai ajouté un bouton 'reset' mais cela efface tout le champ:
<input type="reset" name="Submit2" value="<?php echo _RESET;?>" onclick="document.forms.coaching.reset()" />
A+
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Eléphanteau du PHP | 24 Messages

24 oct. 2007, 11:04

je viens de trouver ca, je vais essayer de le mettre en route:
http://www.javascriptkit.com/script/scr ... list.shtml

A+
VooDoo

Eléphanteau du PHP | 24 Messages

24 oct. 2007, 11:49

ca dechire!! :lol: