Se connecter avec
S'enregistrer | Connectez-vous

Conserver l'ordre des éléments en javascript

Dernière réponse : dans Programmation

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

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 :) 
Lassé par la pub ? Créez un compte
Tom's guide dans le monde