Calcul d'une somme un peu spéciale...

Calcul d'une somme un peu spéciale... - PHP - Programmation

Marsh Posté le 04-12-2007 à 14:49:23    

Bonjour à tous,
Voilà je cherche à faire un petit calcul pour m'assurer qu'une variable est bonne.
En bref, j'ai une liste de liens, que l'on peut ordonner.
Dans la base, chaque lien a donc un n° d'ordre.
Supposons que j'ai 7 liens.
J'ai un formulaire pour pouvoir changer l'ordre de ces liens : dans un select déroulant pour chaque lien, de 1 à 7, avec son ordre sélectionné.
Donc pour changer l'ordre il suffit de dire le lien en 1 je choisis dans la liste la position 5, et celui en position 5 je le mets en 1.
Ok.
 
Pour m'assurer que les interfaces chaise-clavier ne choisissent pas 2 fois la position 1 par exemple, j'aimerai faire un petit calcul avec les valeurs envoyées de tout les liens.
Exemple, pour 7 liens, je devrai avoir un total de 1+2+3+4+5+6+7, soit 28
Si il y a 2 fois la position 1, ça me ferait 1+2+3+4+1+6+7, soit 24, ça marche pas il faut revoir l'ordre.
 
Mais bien évidemment ce total à vérifier change en fonction du nombre de liens (pour 6 c'est 21, pour 5 c'est 15...)
 
Je cherche donc, ouf, merci d'être arrivé jusque là, la formule qui me permet de dire : j'ai x liens, donc le total recherché doit être de y.
Merci de votre aide !!!


---------------
Fred 'Chandon' | http://www.inventeursfous.com | http://www.plantesgrasses.com
Reply

Marsh Posté le 04-12-2007 à 14:49:23   

Reply

Marsh Posté le 04-12-2007 à 16:20:46    

Si c'est pour faire la vérification coté serveur, autant utiliser un array_unique().

Reply

Marsh Posté le 04-12-2007 à 16:24:16    

D'autant qu'avec tes 7 liens...
 
1+2+3+4+5+6+7 = 28
1+3+3+3+5+6+7 = 28
 
=> Ton test ne marche pas


Message édité par MagicBuzz le 04-12-2007 à 16:24:55
Reply

Marsh Posté le 04-12-2007 à 16:36:53    

Putain de merde !!!!
Et avec une fonction factorielle ?


---------------
Fred 'Chandon' | http://www.inventeursfous.com | http://www.plantesgrasses.com
Reply

Marsh Posté le 04-12-2007 à 16:43:55    

Cherche pas :o
 
Tu colles les valeurs dans un tableau.
Tu fais un tri.
Et tu vérifies ensuite que t'as pas deux fois de suite la même valeur.
 
Ce sera bien plus simple.
 
Pour faire un sort en JS :
http://www.w3schools.com/jsref/try [...] sref_sort2

Reply

Marsh Posté le 04-12-2007 à 16:54:35    

Mais bon, tu te prends la tête pour pas grand chose...
 
Une petite GUI bien plus conviviale et qui résoud ton problème...
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" >
  3. <head>
  4.    <title>Untitled Page</title>
  5.    <script type="text/javascript">
  6.    function up()
  7.    {
  8.      var liste = document.getElementById("liste" );
  9.      if (liste.selectedIndex > 0)
  10.      {
  11.        var opt1 = liste.options[liste.selectedIndex];
  12.        var opt2 = liste.options[liste.selectedIndex - 1];
  13.        //liste.remove(liste.selectedIndex);
  14.        liste.insertBefore(opt1, opt2);
  15.      }
  16.      return false;
  17.    }
  18.    function down()
  19.    {
  20.      var liste = document.getElementById("liste" );
  21.      if (liste.selectedIndex != -1 && liste.selectedIndex < liste.options.length - 2)
  22.      {
  23.        var opt1 = liste.options[liste.selectedIndex];
  24.        var opt2 = liste.options[liste.selectedIndex + 1];
  25.        liste.insertBefore(opt2, opt1);
  26.      }
  27.      return false;
  28.    }
  29.    </script>
  30. </head>
  31. <body>
  32. <form name="grmpf" method="post" action="#">
  33. <select name="liste" size="10" id="liste">
  34.    <option>Test 1</option>
  35.    <option>Test 2</option>
  36.    <option>Test 3</option>
  37.    <option>Test 4</option>
  38.    <option>Test 5</option>
  39.    <option>Test 6</option>
  40.    <option>Test 7</option>
  41.    <option>Test 8</option>
  42. </select>
  43. <br />
  44. <input type="button" value="v" onclick="return down();"/>
  45. <input type="button" value="^" onclick="return up();"/>
  46. </form>
  47. </body>
  48. </html>


Message édité par MagicBuzz le 04-12-2007 à 19:26:58
Reply

Marsh Posté le 06-12-2007 à 09:06:43    

Merci MagicBuzz pour tes réponses.


---------------
Fred 'Chandon' | http://www.inventeursfous.com | http://www.plantesgrasses.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed