Tom's Guide > Forum > Programmation > Conserver l'ordre des éléments en javascript

Conserver l'ordre des éléments en javascript

Forum Programmation : Conserver l'ordre des éléments en javascript

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Code :
  1. <SCRIPT LANGUAGE="JavaScript">
  2. function tjs_haut(l) {
  3. var indice=l.selectedIndex
  4. if (indice<0) {
  5. alert("Aucune ligne n'est sélectionnée" );
  6. }
  7. if (indice>0) { // Il reste une ligne au-dessus
  8. tjs_swap(l,indice,indice-1);
  9. }
  10. }
  11. function tjs_bas(l) {
  12. var indice=l.selectedIndex
  13. if (indice<0) {
  14. alert("Aucune ligne n'est sélectionnée" );
  15. }
  16. if (indice<l.options.length-1) { // Il reste une ligne en-dessous
  17. tjs_swap(l,indice,indice+1);
  18. }
  19. }
  20. function tjs_swap(l,i,j) {
  21. var valeur=l.options.value;
  22. var texte=l.options.text;
  23. l.options.value=l.options[j].value;
  24. l.options.text=l.options[j].text;
  25. l.options[j].value=valeur;
  26. l.options[j].text =texte;
  27. l.selectedIndex=j
  28. tjs_ordre(l.form);
  29. }
  30. function tjs_ordre(f) {
  31. var l=f.liste;
  32. var ordre="";
  33. for(var i=0;i<l.options.length;i++) {
  34. if (i>0) {ordre+="-";}
  35. ordre+=l.options.value;
  36. }
  37. f.ordre.value=ordre;
  38. }
  39. </SCRIPT>
  40. <br><br><br>
  41. <div align="center">
  42. <FORM name="tjsform">
  43. <TABLE border="0">
  44. <TR>
  45. <TD valign="top">
  46. <SELECT name='liste' size='10' style='width:300px'>
  47. <?
  48. $res=mysql_query("SELECT .... FROM ...." );
  49. while ($row=mysql_fetch_array($res)){
  50. echo "<option value=\"".$row['champ']."\">".$row['champ']."</option>";
  51. }
  52. ?>
  53. </SELECT>
  54. </TD>
  55. <TD valign="top">
  56. <INPUT type="button" value='Monter' style='width:100px' onClick='tjs_haut(this.form.liste)'>
  57. <INPUT type="button" value='Descendre' style='width:100px' onClick='tjs_bas(this.form.liste)'>
  58. </TD>
  59. </TR>
  60. </TABLE>
  61. </SELECT>
  62. <input type="submit" name="neworder" value="Conserver cet ordre">
  63. </FORM>
  64. </div>




Voici mon code javascript et mon formulaire. J'aimerais pourvoir enregistrer l'ordre de placement pour le réutiliser par la suite en PHP seulement je ne vois pas comment faire. Mes connaissances en javascript sont très faibles et je ne vois aucun moyen de récupérer un id quelconque ou autre chose me permettant de gérer facilement la place de chaque éléments.

Merci d'avance pour votre aide.

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Pour conserver l'ordre (lorsque tu soumet ton formulaire je présume), il suffit que tu forces la sélection de tout ce qui est dans ton select (il faut d'ailleurs que ce soit un multiple) et que tu transmettes.

A priori, les données arriveront dans l'ordre où elles ont été envoyées, tu pourras donc traiter comme tu veux.

Il y a d'autres possibilités en créant des variables de gestion d'ordre, ou avec de l'ajax, mais c'est peut-être pas la peine de compliquer la chose :)

Répondre à crazycat@idn

merci a toi je vais essayer de me débrouiller....

Répondre à polyphase

juste une chose : je ne vois pas comment forcer la séléction de tous les champs lors de la validation de mon formulaire

Répondre à polyphase

wow, je te le fais de tête, ce sera surement faux mais approchant:
function select_all(f) {
mymultiple = eval(f);
for (i=0;i<mymultiple.options.length;i++) {
mymultiple.options[i].select = true;
}
}

Répondre à crazycat@idn
Tom's Guide > Forum > Programmation > Conserver l'ordre des éléments en javascript
Aller à :

Il y a 447 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens