Ce forum est maintenant fermé, seule cette archive statique reste consultable.
  FORUM Rue-Montgallet.com
  Programmation
  Html

  Remplir un tableau suivant le choix dans une liste deroulante

 Page :   1  2
Page Précédente
Auteur Sujet :

Remplir un tableau suivant le choix dans une liste deroulante

n°16856
mihai
Animé-vore
Profil : Membre
Posté le 12-06-2006 à 00:41:08  
 

Bonjour,
 
J'ai un souci pour remplir un tableau suivant le choix dans une liste deroulante... j'ai tout essayé (mais je susi neewb) et ca marche pas...
 
si qqn peut me dire comment aranger mon code merci
 
 
 
<HEAD>
<script language="javascript">
   /*Objet Units*/
var elfe_bois = array();
var nom_elfe_bois=["Esprit de la Forêt","Forestier de la Meute","Archer Centaure","Pégase","Guerrier Elfe","Guerrière de l'Aube","Baliste d'Argent","Licorne Ailée","Druide d'Elfiquia","Eldar d'Anadriel","Archer de Mirkwood","Phoenix"];
var type_elfe_bois=['R','M','R','A','M','M','R','A','R','A','R','A']
var habilete_elfe_bois=['','Sentinelle','','Embuscade','','','Embuscade','Sentinelle','','Embuscade','','']
var puissance_elfe_bois=[50,68,85,126,157,226,285,442,590,909,1124,1473]
elfe_bois=[nom_elfe_bois,type_elfe_bois,habilete_elfe_bois,puissance_elfe_bois]
   
var elfe_noir = array();
var nom_elfe_noir=["Espionne Elfe Noire","Araignée Géante","Arbalétrier Elfe Noir","Buse des Ombres","Chasseresse d'Aquaphel","Loup-Garou","Baliste des Trois Lunes","Hippogriffe","Enchanteresse d'Asphraenna","Drake de Malariel","Assassin d'Oblivion","Dragon Éthérique"]
var type_elfe_noir=['R','M','R','A','M','M','R','A','R','A','R','A']
var habilete_elfe_noir=["Sentinelle","Embuscade","Embuscade","Sentinelle","Embuscade"]  
var puissance_elfe_noir=[50,68,85,126,157,226,285,442,590,909,1124,1473]
elfe_bois=[nom_elfe_bois,type_elfe_bois,habilete_elfe_bois,puissance_elfe_bois]
 
 function calc ()
  {
  var choix_race = document.liste_races.selectedIndex.value;
  document.Liste_armee["L1Name"].value=nom_relfe_bois[1].value
  document.Liste_armee["L2Name"]value=nom_elfe_bois[2].value  
  document.Liste_armee["L2Name"].value=document.write(nom_relfe_bois[1]);
/* var choix1=form.liste_races.options[form.liste_races.selectedIndex].value;
 if choix1 = 1 {
*/  var nom_race_choisie = nom_elfe_bois
  var type_race_choisie = type_elfe_bois
  var habilete_race_choisie =  habilete_elfe_bois
  var puissance_race_choisie = puissance_elfe_bois
/*  }
*/  document.getElementById('L1Name').value = nom_race_choisie[1].value
  document.getElementById('L2Name').value = nom_race_choisie[2].value
   
  document.Liste_armee.L1Name.value=nom_race_choisie[1].value
  document.Liste_armee.L2Name.value=nom_race_choisie[2].value  
   
   
   if (selSelectObject.options[selSelectObject.selectedIndex].value != "" )
  {
   
   
   location.href=selSelectObject.options[selSelectObject.selectedIndex].value
  }
 }
 
Orc
Noble
Barbare
Mort-Vivant
Ange
Atlante
Démoniaque
Nain
Petite gens
Goblin
   
  if (liste_races.value = 1) {
  var nom_race_choisie = nom_elfe_bois
  var type_race_choisie = type_elfe_bois
  var habilete_race_choisie =  habilete_elfe_bois
  var puissance_race_choisie = puissance_elfe_bois
  }
   
  if (liste_races.value = 2) {
  var nom_race_choisie = nom_elfe_noir
  var type_race_choisie = type_elfe_noir
  var habilete_race_choisie =  habilete_elfe_noir
  var puissance_race_choisie = puissance_elfe_noir
  }
   
  /*Objet Remplissage Liste*/
  function Liste_elements(){    
   document.getElementById('L1Name').value = nom_race_choisie[1].value
   document.getElementById('L2Name').value = nom_race_choisie[2].value
   document.getElementById('L3Name').innerHTML = nom_race_choisie[3]
   document.getElementById('L4Name').innerHTML = nom_race_choisie[4]
     }
 </script>
 </HEAD>
<!--==============================================================-->
<!--CHOIX RACE-->
<!--==============================================================-->
<h3 name="CHOIX RACE" style="font-size:1.2em;margin-bottom:15px;">Choisissez votre Race:</h3>
<div id="page" style="background-color:grey;">      
<form action=calc() name="Listes_choix">
<select name="liste_races" onChange=calc(); style="height: 22px; width: 240px" id="liste_races">
<option value=1>Elfe de bois</option>
<option value=2>Elfe noir</option>
<option value=3>Orc</option>
<option value=4>Noble</option>
<option value=5>Barbare</option>
<option value=6>Mort-Vivant</option>
<option value=7>Ange</option>
<option value=8>Atlante</option>
<option value=9>Démoniaque</option>
<option value=10>Nain</option>
<option value=11>Petite gens</option>
<option value=12>Goblin</option>
</select>
</form>
 
<!--==============================================================-->
<!--AMELIORATIONS-->
<!--==============================================================-->
<form action=calc() name="Listes_recherches">
<table>
<tr>
<td>
<label name="Armes renforcées" style="font-size:1.2em;margin-bottom:15px;">Armes renforcées:</label><br />
<input type="radio" name="Armes renforcées" value="radio0" onclick="changeprix(0)" checked>Niveau 0 <br />
<input type="radio" name="Armes renforcées" value="radio1" onclick="changeprix(1)" >Niveau 1 [+3%]<br />
<input type="radio" name="Armes renforcées" value="radio2" onclick="changeprix(2)">Niveau 2 [+6%]<br />
<input type="radio" name="Armes renforcées" value="radio3" onclick="changeprix(4)">Niveau 3 [=15%]<br />
<br />
</td>
<td>
<label name="Balistique" style="font-size:1.2em;margin-bottom:15px;">Balistique:</label><br />
<input type="radio" name="Balistique" value="radio0" onclick="changeprix(0)" checked>Niveau 0 <br />
<input type="radio" name="Balistique" value="radio1" onclick="changeprix(1)" >Niveau 1 [+3%]<br />
<input type="radio" name="Balistique" value="radio2" onclick="changeprix(2)">Niveau 2 [+6%]<br />
<input type="radio" name="Balistique" value="radio3" onclick="changeprix(4)">Niveau 3 [=15%]<br />
<br />
</td>
<td>
<label name="Armes aériennes" style="font-size:1.2em;margin-bottom:15px;">Armes aériennes:</label><br />
<input type="radio" name="Armes aériennes" value="radio0" onclick="changeprix(0)" checked>Niveau 0 <br />
<input type="radio" name="Armes aériennes" value="radio1" onclick="changeprix(1)" >Niveau 1 [+3%]<br />
<input type="radio" name="Armes aériennes" value="radio2" onclick="changeprix(2)">Niveau 2 [+6%]<br />
<input type="radio" name="Armes aériennes" value="radio3" onclick="changeprix(4)">Niveau 3 [=15%]<br /><br />
</td>
</tr>
</table>  
</form>
<!--==============================================================-->
<!--==============================================================-->
<form name="Liste_armee" >
<table >
<!--Titres--><tr><td>Unité</td><td>Puissance</td><td>Type</td><td>Nombre</td><td></td><td></td><td></td></tr>
<!--LEV1--><tr><td><input type="text" name="L1Name" id=L11Name></input> </td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
<!--LEV2--><tr><td name=L2Name></td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
<!--LEV3--><tr><td><input type="text" id=L3Name></td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
<!--LEV4--><tr><td><input type="text" id=L4Name></td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
<!--LEV5--><tr><td><input type="text" id=L5Name></td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
<!--LEV6--><tr><td><input type="text" id=L6Name></td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
<!--LEV7--><tr><td><input type="text" id=L7Name></td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
<!--LEV8--><tr><td><input type="text" id=L8Name></td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
<!--LEV9--><tr><td><input type="text" id=L9Name></td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
<!--LEV10--><tr><td><input type="text" id=L10Name></td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
<!--LEV11--><tr><td><input type="text" id=L11Name></td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
<!--LEV12--><tr><td><input type="text" id=L12Name></td>
<td></td><td></td><td></td><td></td><td></td><td></td></tr>
</table>
</form>
 
</div>

mood
Pub
Posté le 12-06-2006 à 00:41:08  
 

n°16859
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 12-06-2006 à 11:19:53  
 

Ça ressemble à l'implantation d'un jeu en Javascript... Mais je suis incapable d'en dire plus.
 
Si tu nous disais un peu quel tableau tu désires remplir, et avec quoi...


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16863
mihai
Animé-vore
Profil : Membre
Posté le 12-06-2006 à 16:17:11  
 

http://socoliuc.free.fr/xoops_2013 [...] s/soapbox/
 
c'est aps un jeu (a proprement parler) mais une page perso de personnes jouant a un jeu ^^
 
il servirait a calculer des puissances suivant un nombre d'unités possédées. Voila donc rien de commercial vous voyez la tete de la page perso;)
 
merci a tous ceux qui peuvent m'aider

n°16864
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 12-06-2006 à 22:01:18  
 

Je pense avoir un début de réponse.
 
Lorsque tu écris :
<form action=calc() name="Listes_recherches">
Tu désignes par l'étiquette "action" une procédure à démarrer avec un bouton de type "submit". Cette étiquette ne me semble pas très utile puisque tu définis juste en dessous :
select name="liste_races" onChange=calc(); style="height: 22px; width: 240px" id="liste_races">  
La fonction est déjà lancée par la sélection d'une entrée dans la liste déroulante.
 
Question syntaxe, je complèterais :
select name="liste_races" onChange="javascript:calc();" style="height: 22px; width: 240px" id="liste_races">  
ainsi que :
<input type="radio" name="Armes renforcées" value="radio0" onclick="javascript:changeprix(0);" checked>Niveau 0 <br />
 
Je ne vois pas non plus de fonction changeprix().
 
À propos de la liste :
Orc
Noble
Barbare...

Elle est au beau milieu d'une portion de code JavaScript. Il faudrait inclure ces noms dans des variables pour leur faire jouer un rôle dans le code.
 
Après cette liste, les deux tests qui suivent n'appartiennent pas à une fonction, puisque calc() se termine à l'accolade fermante juste en haut de la liste (peut-être le code de changeprix() ?)
 
À part ça, j'ai aussi trouvé (au début de calc() ) :
document.Liste_armee["L1Name"].value=nom_relfe_bois[1].value  
Je suppose que le 'r' est de trop.


Message édité par jxano le 12-06-2006 à 22:03:23

---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16865
mihai
Animé-vore
Profil : Membre
Posté le 12-06-2006 à 22:47:36  
 

oups ^^ en effet le r est de trop...  
 
-la fonction changeprix est pas inseree pour el moment puisque la fonction calc ne marche pas^^ (tout faire petit a petit)
 
- je fais tes modifs et je reviens ;)

n°16866
mihai
Animé-vore
Profil : Membre
Posté le 12-06-2006 à 23:15:28  
 

voila le code epuré sans les informations innutiles.
 
En gros j'arrive pas a remplir le tableau avec les elemnts stoqués dans la variable declarée dans le Head(au niveau du javascript)... en faisant appel a la fonction calc.
 
merci
 

Citation :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <script language="javascript">
   /*Objet Units*/
var elfe_bois = array();
var nom_elfe_bois=["Esprit de la Forêt","Forestier de la Meute","Archer Centaure","Pégase","Guerrier Elfe","Guerrière de l'Aube","Baliste d'Argent","Licorne Ailée","Druide d'Elfiquia","Eldar d'Anadriel","Archer de Mirkwood","Phoenix"];
var type_elfe_bois=['R','M','R','A','M','M','R','A','R','A','R','A']
var habilete_elfe_bois=['','Sentinelle','','Embuscade','','','Embuscade','Sentinelle','','Embuscade','','']
var puissance_elfe_bois=[50,68,85,126,157,226,285,442,590,909,1124,1473]
elfe_bois=[nom_elfe_bois,type_elfe_bois,habilete_elfe_bois,puissance_elfe_bois]
 
 function calc ()
  {
  var choix_race = document.liste_races.selectedIndex.value;
  document.Liste_armee["L1Name"].value=nom_elfe_bois[1].value;
  document.Liste_armee["L2Name"]value=nom_elfe_bois[2].value;  
  }
 
  var nom_race_choisie = nom_elfe_bois
  var type_race_choisie = type_elfe_bois
  var habilete_race_choisie = habilete_elfe_bois
  var puissance_race_choisie = puissance_elfe_bois
     
 </script>
</head>
<body>
<!--==============================================================--><!--CHOIX RACE--><!--==============================================================-->
<h3 name="CHOIX RACE" style="font-size: 1.2em; margin-bottom: 15px;">Choisissez
votre Race:</h3>
<div id="page" style="background-color: grey;">
<form action="calc()" name="Listes_choix">
  <select name="liste_races" onchange="javascript:calc();"
 style="height: 22px; width: 240px;" id="liste_races">
  <option value="1">Elfe de bois</option>
 
  <option value="2">Elfe noir</option>
  <option value="3">Orc</option>
  <option value="4">Noble</option>
  <option value="5">Barbare</option>
  <option value="6">Mort-Vivant</option>
  <option value="7">Ange</option>
 
  <option value="8">Atlante</option>
  <option value="9">D&eacute;moniaque</option>
  <option value="10">Nain</option>
  <option value="11">Petite gens</option>
  <option value="12">Goblin</option>
  </select>
 
</form>
<!--==============================================================-->
<!--==============================================================-->
<form name="Liste_armee">
  <table>
<!--Titres--><tbody>
      <tr>
        <td>Unit&eacute;</td>
        <td>Puissance</td>
 
        <td>Type</td>
        <td>Nombre</td>
        <td><br>
        </td>
        <td><br>
        </td>
        <td><br>
        </td>
 
      </tr>
<!--LEV1--><tr>
        <td><input name="L1Name" id="L11Name" type="text"> </td>
        <td><br>
        </td>
        <td><br>
        </td>
        <td><br>
        </td>
 
        <td><br>
        </td>
        <td><br>
        </td>
        <td><br>
        </td>
      </tr>
<!--LEV2--><tr>
        <td name="L2Name"><br>
 
        </td>
        <td><br>
        </td>
        <td><br>
        </td>
        <td><br>
        </td>
        <td><br>
        </td>
 
        <td><br>
        </td>
        <td><br>
        </td>
      </tr>
<!--LEV3--><tr>
        <td><input id="L3Name" type="text"></td>
        <td><br>
        </td>
 
        <td><br>
        </td>
        <td><br>
        </td>
        <td><br>
        </td>
        <td><br>
        </td>
        <td><br>
 
        </td>
      </tr>
    </tbody>
  </table>
</form>
</div>
</body>
</html>


Message édité par mihai le 12-06-2006 à 23:16:14
n°16867
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 13-06-2006 à 00:25:56  
 

Déjà, dans calc() :
document.Liste_armee["L2Name"]value=nom_elfe_bois[2].value;
Il manque un point après le ']'.
 
Déclaration des tableaux :
 
var nom_elfe_bois=new array("Esprit de la Forêt","Forestier de la Meute","Archer Centaure","Pégase","Guerrier Elfe","Guerrière de l'Aube","Baliste d'Argent","Licorne Ailée","Druide d'Elfiquia","Eldar d'Anadriel","Archer de Mirkwood","Phoenix");  
 

  • Est-ce que ça ne marcherait pas mieux avec "new array" et des parenthèses au lieu des crochets ?
  • N'oublie pas les ';' en fin de chaque déclaration.
  • Les déclarations concernant elfe_bois me semblent inutiles.


Message édité par jxano le 13-06-2006 à 00:26:49

---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16869
mihai
Animé-vore
Profil : Membre
Posté le 13-06-2006 à 09:49:25  
 

-new array change rien
-les parantheses non plus
-et les ; sont aps obligatoires en javascript si on saute deja la ligne
-en ce qui concerne elfe_bois ... j'en sais rien j'ai fait ca car j'ai trouvé cela plus propre :d mais a vous de me dire si ca vaut el coup ;)
 
merci

n°16873
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 13-06-2006 à 21:04:12  
 

J'ai tout d'abord cru que tu voulais définir un tableau à deux dimensions elfe_bois, mais cela ne s'impose pas ! En quoi cela serait plus propre ?
 
Le souci en JavaScript, ce sont les messages d'erreur. Dans mon navigateur, c'est juste un truc jaune qui s'allume quand ça ne va pas... Un rien lapidaire. (S'il y a un moyen d'en avoir de plus clairs avec IE ou Mozilla, j'aimerais bien le connaître.)
 
Une chose que je n'ai pas vue tout de suite : l'objet "L2Name" du formulaire "Liste_armee" n'est pas défini comme un champ texte. Et je crois qu'à la place de :
  document.Liste_armee["L1Name"].value=nom_elfe_bois[1].value;
on pourrait écrire :
  document.Liste_armee.L1Name.value=nom_elfe_bois[1].value;
 
Et quand tu auras fait marcher tout ça, je te donne une petite idée pour la suite :

Citation :

function sel (debut, fin)
 {
 monDoc = document.maPage;  
 /* Titre1, Titre2, Titre3, etc. sont des cases à cocher */
 for (j=debut; j<=fin; j++) eval ("monDoc.Titre"+j+".click();" );
 }


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16875
mihai
Animé-vore
Profil : Membre
Posté le 14-06-2006 à 11:11:48  
 

en fait je veux que lorsque je selectionne un nom dans la liste deroulante que le script me remplisse les 12 cases du tableau L"i"Name par les valeurs de la liste de noms correspondant et qui est stoquée dans nom_xxx ou xxx est l'element choisi dans la liste.
 
et justement que j'ecrive : document.Liste_armee.L1Name.value=nom_elfe_bois[1].value;
document.Liste_armee["L1Name"].value=nom_elfe_bois[1].value;  
ca ne change rien... :'(
 
merci encore pour tes reponses

n°16877
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 14-06-2006 à 16:34:16  
 

J'ai copié ton bout de code et essayé de le faire fonctionner chez moi...
 
Si je te suis bien, tu as 12 races avec pour chacune 12 individus ; chacun des 144 individus a un type, une habileté et une puissance. Ton tableau doit afficher toutes les informations pour une race donnée. À cela se greffent les "améliorations" : armes renforcées, balistique, armes aériennes. En manœuvrant les boutons radio, on modifie encore quelque chose dans le tableau.
 
J'ai réussi à faire marcher les champs texte par la commande de la liste déroulante (j'ai en effet retrouvé les maillons qui manquaient dans la chaîne de commande). En ce moment, je suis en train d'étudier les boutons radio. Sur quoi les taux indiqués doivent-ils s'appliquer ? À mon avis sur les puissances, seules données numériques. Et comment : faut-il multiplier les taux entre eux ?
 
Si tu m'envoies par message perso tous les noms des personnages avec leurs propriétés, je serai en mesure de te fournir un code qui marche ; je te laisserai le soin de la présentation. Par la suite, je posterai ici un truc simplifié, pour que cela serve à d'autres.


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16882
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 14-06-2006 à 21:02:03  
 

Ça y est, je suis venu à bout des boutons radio.
 
Je publierai d'ici peu un abrégé commenté et fonctionnel. Ma proposition du précédent message tient toujours...


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16883
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 15-06-2006 à 00:11:41  
 

Voici, comme promis, un condensé des techniques à mettre en œuvre :

Citation :

<html>
<head> <!-- EN-TÊTE DE LA PAGE -->
<script language="javascript">
// Ici, les majuscules comptent : "Array" différent de "array"
 
var personnage= new Array ("Esprit", "Druide", "Enchanteur",  
                                       "Espion", "Chasseur", "Forestier",  
                                       "Arbalétrier", "Archer", "Guerrier" );
var qualite= new Array ('Réflexion', 'Science', 'Magie',  
                                'Débrouillardise', 'Observation', 'Bon sens',  
                                'Vitesse', 'Précision', 'Énergie');
var valeur= new Array(1500, 3000, 2000,  
                               800, 300, 100,  
                               600, 350, 150);
 
var choixPerso= 0; // No de classe choisie (en global pour utiliser dans les 2 fonctions)
 
function afficher () // Construit et remplit le tableau
  {
  nbEntrees= document.Categories.ListeCategories.options.length;
  // Renvoie un numéro entre 0 et nombre d'entrées - 1
  choixPerso = document.Categories.ListeCategories.options.selectedIndex;
  for (i= 0; i < nbEntrees; i++)
    {
    eval ("document.Affichage.Nom"+i+".value= personnage[choixPerso * 3 + i];" );
    eval ("document.Affichage.Qual"+i+".value= qualite[choixPerso * 3 + i];" );
    }
  recalculer (); // Prend en charge la colonne des valeurs
  }
 
function recalculer () // Recalcule les valeurs en fonction de nouveaux coefficients
  {
  multConn= 1; multForme= 1;  
 
  // Coefficient de connaissance
  nbOptions= document.Coeff.Connaissance.length; // Nombre d'options
  // Lit la liste des options et relève la valeur portée par l'option cochée
  for (i=0; i < nbOptions; i++)
    if (document.Coeff.Connaissance[i].checked) multConn= document.Coeff.Connaissance[i].value;
 
  // Coefficient de forme
  nbOptions= document.Coeff.Forme.length;
  for (i=0; i < nbOptions; i++)
    if (document.Coeff.Forme[i].checked) multForme= document.Coeff.Forme[i].value;
 
  nbEntrees= document.Categories.ListeCategories.options.length;
  for (i= 0; i < nbEntrees; i++)
    {
    ValeurAffichee= multConn * multForme * valeur[choixPerso * 3 + i];
    eval ("document.Affichage.Val"+i+".value=" + ValeurAffichee);
    }
  }
 
</script>
 
</head>
<!------------------- CORPS DE LA PAGE -->
<body>
 
<form name="Categories">
  <select name="ListeCategories" onchange="afficher()">
    <option>Stratèges</option>
    <option>Civils</option>
    <option>Soldats</option>
  </select>
</form>
 
<!-- Libellés des coefficients multiplicateurs -->
<form name="Coeff">
  <table cellpadding=5>
    <tr>
      <th>Connaissance</th>
      <th>Forme</th>
    </tr>
    <tr>
      <td>
        <!-- Les options portent le même nom pour s'exclure mutuellement -->
        <input type="radio" name="Connaissance" value=1 onclick="recalculer()" checked>D&eacute;butant<br>
        <input type="radio" name="Connaissance" value=1.3 onclick="recalculer()">Initié (+30%)<br>
        <input type="radio" name="Connaissance" value=1.7 onclick="recalculer()">Expert (+70%)<br>
      </td>
      <td>
        <input type="radio" name="Forme" value=1 onclick="recalculer()" checked>En forme<br>
        <input type="radio" name="Forme" value=0.8 onclick="recalculer()">Fatigu&eacute; (-20%)<br>
        <input type="radio" name="Forme" value=0.4 onclick="recalculer()">Malade (-60%)<br>
      </td>
    </tr>
  </table>
</form>
 
<form name="Affichage">
  <table>
    <tr>
      <th>Personnage</th>  <!-- En-têtes de tableau -->
      <th>Valeur</th>
      <th>Qualit&eacute;</th>
    </tr>
    <tr>
      <td> <input name="Nom0" type="text"> </td>
      <td> <input name="Val0" type="text"> </td>
      <td> <input name="Qual0" type="text"> </td>
    </tr>
    <tr>
      <td> <input name="Nom1" type="text"> </td>
      <td> <input name="Val1" type="text"> </td>
      <td> <input name="Qual1" type="text"> </td>
    </tr>
    <tr>
      <td> <input name="Nom2" type="text"> </td>
      <td> <input name="Val2" type="text"> </td>
      <td> <input name="Qual2" type="text"> </td>
    </tr>
  </table>
</form>
 
</body>  <!-- FIN CORPS -->
</html>

La boîte déroulante en haut de la page commande le remplissage du tableau du bas. Les boutons radio permettent de jouer sur les valeurs respectives des personnages. Le code suggère également comment organiser les données.
 
Mmmh... Tu devrais pouvoir adapter ça tes besoins. Enfin, si jamais tu as un doute...


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16884
mihai
Animé-vore
Profil : Membre
Posté le 15-06-2006 à 10:01:12  
 

je viens de le coller a la place de mon code et en selectionnant dans liste deroulante les cases se remplissent pas...
 
Personnage   Valeur   Qualité
 
mais rien en dessous... c'est etrange... il y a un bout du code qui a du mal passer je vais regarder ca de plus pres ^^ car bon la ca m'a l'air interessant

n°16885
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 15-06-2006 à 10:30:28  
 

J'ai fait la mise au point avec Internet Explorer. Par acquis de conscience, je viens d'essayer avec Mozilla, et tout marche correctement.


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16886
mihai
Animé-vore
Profil : Membre
Posté le 15-06-2006 à 10:57:19  
 

tres etrange...  
 
je reteste en collant dans un bloc note et en enregistrant au format HTML sans passer par un Editeur HTML... c'est peut etre ca qui a fait bugguer.
 
Edit: apres avoir enregistré avec mon petit bloc note la page marche nikel ^^ (t'es un dieu :sol: )
 
mais en inserant le bloc dans une page cela deconne ^^ (ci joint l'exemple)
 
http://socoliuc.free.fr/xoops_2013 [...] s/soapbox/


Message édité par mihai le 15-06-2006 à 11:02:40
n°16887
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 15-06-2006 à 11:38:07  
 

Le serveur est sans doute un peu lent ; je n'arrive pas à voir ton exemple.
 
C'est un fait : je fais TOUS mes développements "web" au Bloc-Notes. J'aurais dû te prévenir de ça, du reste... Les éditeurs dédiés rajoutent des balises qui compliquent le débogage, à mon avis.
 
Autre chose : dans ta page, il y avait des <div>, alors que j'ai mis des <body> dans mon petit exemple. Il peut y avoir un souci avec les cadres (balises <frame> ).


Message édité par jxano le 16-06-2006 à 15:35:19

---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16888
mihai
Animé-vore
Profil : Membre
Posté le 15-06-2006 à 11:58:06  
 

je vais essayer de modifier cela car je voudrias l'integrer dans la page HTML existante ;)
 
Bon je fais ca ce soir et je reviens ^^ car ce n'est qu'un debut mais tu viens de me debloquer un enorme pb
 
merci

n°16891
mihai
Animé-vore
Profil : Membre
Posté le 15-06-2006 à 17:04:55  
 

surement un petit souci de style ^^ je vais remedier a ca car pour le moemnt je suis tes conseils et j'ai deja rempli toutes les races et tous les units en rajoutant des caractéristiques ^^
 
Reste la partie calcul qui risque d'etre un peu plus sport (j'ai deplacé la page dans ma partie telechargement de mon site si tu veux voir l'avancement)
 
je reposterai une version plsu avancée (des que j'ai fait els calculs^^)

n°16898
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 16-06-2006 à 12:50:58  
 

Je reviens sur le forum un peu par hasard... Je viens de découvrir ton deuxième message, qui m'a incité à tenter à nouveau de suivre ton lien vers Soapbox.
 

mihai a écrit :

surement un petit souci de style ^^ je vais remedier a ca car pour le moemnt je suis tes conseils et j'ai deja rempli toutes les races et tous les units en rajoutant des caractéristiques ^^

Je viens de faire un tour sur le site de Bahagon (par l'intermédiaire de SoapBox) et d'y récupérer quelques données. Je vais les incorporer à mon travail, pour voir ce que ça donne.
 

mihai a écrit :

Reste la partie calcul qui risque d'etre un peu plus sport (j'ai deplacé la page dans ma partie telechargement de mon site si tu veux voir l'avancement)

Je n'arrive pas à trouver cette page depuis Soapbox ; il y a bien un lien "Download", mais qui ne concerne que les produits Xoops...
 

mihai a écrit :

je reposterai une version plsu avancée (des que j'ai fait els calculs^^)

J'aimerais bien avoir les règles de calcul, qui me semblent plus compliquées que la simple multiplication des taux.
 
Une précision pour Aurel (de Soapbox), ces termes ("Stratèges"...) viennent uniquement de moi. Je les ai choisis dans l'urgence pour forger un exemple ; ils reflètent mes conceptions, qui ne sont absolument pas celles du jeu !
 
Apparamment, sur Soapbox, vous vous êtes donnés rendez-vous aujourd'hui... Ça va être juste pour avoir un calculateur qui marche !


Message édité par jxano le 16-06-2006 à 13:09:04

---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16903
mihai
Animé-vore
Profil : Membre
Posté le 17-06-2006 à 01:40:08  
 

Citation :

<html>
<head> <!-- EN-TÊTE DE LA PAGE -->
<script language="javascript">
// Ici, les majuscules comptent : "Array" différent de "array"
 
var personnage= new Array ("Esprit de la Forêt","Forestier de la Meute","Archer Centaure","Pégase","Guerrier Elfe","Guerrière de l'Aube","Baliste d'Argent","Licorne Ailée","Druide d'Elfiquia","Eldar d'Anadriel","Archer de Mirkwood","Phoenix",  
                           "Espionne Elfe Noire","Araignée Géante","Arbalétrier Elfe Noir","Buse des Ombres","Chasseresse d'Aquaphel","Loup-Garou","Baliste des Trois Lunes","Hippogriffe","Enchanteresse d'Asphraenna","Drake de Malariel","Assassin d'Oblivion","Dragon Éthérique",  
                           "Esprit de la Guerre","Geollier de la Tour Noire","Arquebusier Orque","Dévoreur de Chair","Guerrier Orque","Guerrier Uruk-Haï","Baliste de Thanos","Wyvern de Morannon","Sorcier Orque de Morcar","Dragon Rouge","Arbalétrier de Kaicos","Dragon Noir",
         "Chien de Meute","Soldat Impérial de Cyrus","Faucon Royal","Mangonneau","Griffon d'Oberan","Vengeresse de Sylvana","Cavalier de Rowan","Mousquetaire du Roi","Sylphe","Mage d'Istar","Chevalier de la Vertue","Dragon Blanc",
         "Loups de Fenris","Fou de Guerre","Corbeau de Berem","Catapulte","Aigle","Cavalier des Huns","Chevaucheurs de Warg","Archer Urubus","Valkyrie","Shaman de Cresso","Guerrier de l'Ours","Dragon Vert",
         "Squelette","Ghoule","Spectre de Morfanos","Catapulte Pestilentielle","Vampire","Nécromancien","Zombie","Banshee","Damné de Malkhor","Liche","Momie de Cameron","Dragon d'Os",
         "Ange","Moine de Kirius","Mantelet d'Argent","Anges Gardiens","Archer Céleste","Bélier de Dieu","Archange de Jericho","Paladin","Prêtresse de Shessair","Chevalier de St-Michel","Chérubin","Séraphin",
         "Harpie","Guerrier Homarid","Soldat Atlante","Drone","Amazone","Taureau de Posséidon","Bombardier de Nerglas","Élémentaire d'Eau","Canon Solaire","Leviathan d'Hydrakrinn","Dragon Bleu","Solaris",
         "Corrupteur de Morgorocht","Satyre de Kalzar","Invocateur Infernal","Diablotin","Gog de Diltear","Ogre de Locathan","Succube","Maître des Tourments","Diable","Hydre de Zorgull","Démon d'Astaroth","Balrog",
         "Chasseur de Monstres","Garde de Karak-Varn","Guerrier Nain","Lanceur de Haches Nain","Tueur d'Orques","Rapace de Galdrack","Ptérosaure de Katrynka","Mitrailleur Nain","Champion de Aganazar","Géant des Montagnes","Roc d'Alkor","Titan de Granit",         "Gnome des Bois","Frondeur Gnome","Gnome de Choc","Carabinier Gnome","Mercenaire de Volothampe","Chimère","Gyrocoptère","Tireur d'Élite Gnome","Bulldozer Gnome","Machine de Guerre","Forteresse Volante","Golem d'Acier",
         "Farfadet","Arbalétrier Kobold","Gremlin","Grenadier Gobelin","Gobelin de la Moria","Chauves-Souris Vampire","Gargouille","Spécialiste en Explosifs","Déchiqueteur","Ettin","Zeppelin de Guerre","Troll de Kym Nak Mar" );
var qualite= new Array ('','Sentinelle','','Embuscade','','','Embuscade','Sentinelle','','Embuscade','','',  
                        '','Sentinelle','','Embuscade','','','Embuscade','Sentinelle','','Embuscade','','',  
                        '','Sentinelle','','Embuscade','','','Embuscade','Sentinelle','','Embuscade','','',  
                        "Sentinelle","Embuscade","","","Sentinelle","","","","","","","Embuscade",  
                        "Sentinelle","Embuscade","","","Sentinelle","","","","","","","Embuscade",  
                        "Sentinelle","Embuscade","","","Sentinelle","","","","","","","Embuscade",
      "Embuscade","","","Sentinelle","","","","","","Sentinelle","","",
      "Embuscade","","","Sentinelle","","","","","","Sentinelle","","",
      "Embuscade","","","Sentinelle","","","","","","Sentinelle","","",
      "","Sentinelle","Embuscade","","","","","Sentinelle","","","","Sentinelle",
      "","Sentinelle","Embuscade","","","","","Sentinelle","","","","Sentinelle",
      "","Sentinelle","Embuscade","","","","","Sentinelle","","","","Sentinelle" );
var type_unit= new Array('R','M','R','A','M','M','R','A','R','A','R','A',// Construit et remplit le tableau elfes  
       'R','M','R','A','M','M','R','A','R','A','R','A',
       'R','M','R','A','M','M','R','A','R','A','R','A',
       'M','M','A','R','A','R','M','R','A','R','M','A',// Construit et remplit le tableau humain
       'M','M','A','R','A','R','M','R','A','R','M','A',
       'M','M','A','R','A','R','M','R','A','R','M','A',
       'A','M','R','A','R','M','A','M','R','M','A','A',// Construit et remplit le tableau mystique
       'A','M','R','A','R','M','A','M','R','M','A','A',
       'A','M','R','A','R','M','A','M','R','M','A','A',
       'M','R','M','R','M','A','A','R','M','R','A','M', // Construit et remplit le tableau nain
       'M','R','M','R','M','A','A','R','M','R','A','M',
       'M','R','M','R','M','A','A','R','M','R','A','M');
 
var valeur= new Array(50,68,85,126,157,226,285,442,590,909,1124,1473,// Construit et remplit le tableau elfes  
                      50,68,85,126,157,226,285,442,590,909,1124,1473,  
                      50,68,85,126,157,226,285,442,590,909,1124,1473,
                      12,72,94,120,181,215,66,420,130,866,1177,1330,// Construit et remplit le tableau humain
       12,72,94,120,181,215,66,420,130,866,1177,1330,
       12,72,94,120,181,215,66,420,130,866,1177,1330,
       48,65,89,26,173,237,315,462,561,825,1070,1540,// Construit et remplit le tableau mystique
       48,65,89,26,173,237,315,462,561,825,1070,1540,
       48,65,89,26,173,237,315,462,561,825,1070,1540,
       53,62,81,114,165,41,300,400,620,784,1017,1400,// Construit et remplit le tableau nain
       53,62,81,114,165,41,300,400,620,784,1017,1400,
       53,62,81,114,165,41,300,400,620,784,1017,1400);
       
var choixPerso= 0; // No de classe choisie (en global pour utiliser dans les 2 fonctions)
 
function afficher () // Construit et remplit le tableau
  {
 nbEntrees= document.Categories.ListeCategories.options.length;  // Renvoie un numéro entre 0 et nombre d'entrées - 1
  choixPerso = document.Categories.ListeCategories.options.selectedIndex;
   for (i= 0; i < nbEntrees; i++)
       {
        eval ("document.Affichage.Nom"+i+".value= personnage[choixPerso * 12 + i];" );
        eval ("document.Affichage.Qual"+i+".value= qualite[choixPerso * 12 + i];" );
     eval ("document.Affichage.Typ"+i+".value= type_unit[choixPerso * 12 + i];" );
     eval ("document.Affichage.Val"+i+".value= valeur[choixPerso * 12 + i];" );
       }
   recalculer (); // Prend en charge la colonne des valeurs
  }
 
function recalculer () // Recalcule les valeurs en fonction de nouveaux coefficients
  {
  multMelee= 1; multArcher= 1;   multAerien= 1;// Coefficient de connaissance
  nbOptions= document.Coeff.Melee.length; // Nombre d'options
    for (i=0; i < nbOptions; i++)// Lit la liste des options et relève la valeur portée par l'option cochée
  if (document.Coeff.Melee[i].checked) multMelee= document.Coeff.Melee[i].value;
   nbOptions= document.Coeff.Archer.length;  // Coefficient de forme
   for (i=0; i < nbOptions; i++)
    if (document.Coeff.Archer[i].checked) multArcher= document.Coeff.Archer[i].value;
       nbOptions= document.Coeff.Aerien.length; // Nombre d'options
         for (i=0; i < nbOptions; i++)// Lit la liste des options et relève la valeur portée par l'option cochée
       if (document.Coeff.Aerien[i].checked) multAerien= document.Coeff.Aerien[i].value;
        nbEntrees= document.Categories.ListeCategories.options.length;
         for (i= 0; i < nbEntrees; i++)
          {
//             ValeurAffichee= multConn * multForme * valeur[choixPerso * 12 + i];
//             eval ("document.Affichage.Val"+i+".value=" + ValeurAffichee);
          var test=eval("document.Affichage.Typ"+i);
          //alert(test.value);
          if (test.value=="M" ){
           eval ("document.Affichage.Puis"+i+".value = document.Affichage.Val"+i+".value * document.Affichage.Nb"+i+".value*multMelee;" );
          }
          if (test.value=="R" ){
           eval ("document.Affichage.Puis"+i+".value = document.Affichage.Val"+i+".value * document.Affichage.Nb"+i+".value*multArcher;" );
          }
          if (test.value=="A" ){
          eval ("document.Affichage.Puis"+i+".value = document.Affichage.Val"+i+".value * document.Affichage.Nb"+i+".value*multAerien;" );
          }
 
        }
  P0=document.Affichage.Puis0.value
  P1=document.Affichage.Puis1.value
  P2=document.Affichage.Puis2.value
  P3=document.Affichage.Puis3.value
  P4=document.Affichage.Puis4.value
  P5=document.Affichage.Puis5.value
  P6=document.Affichage.Puis6.value
  P7=document.Affichage.Puis7.value
  P8=document.Affichage.Puis8.value
  P9=document.Affichage.Puis9.value
  P10=document.Affichage.Puis10.value
  P11=document.Affichage.Puis11.value  
for (i=0; i <11; i++){
  Pt+=document.Affichage.Puis"+i+".value
 document.Affichage.PuisT.value=P0+P1+P2+P3+P4+P5+P6+P7+P8+P9+P10+P11//alert('toto');
}
}
</script>
</head>
<!------------------- CORPS DE LA PAGE -->
<body>
 
<!--            
-->  
<form name="Categories">
  <select name="ListeCategories" onchange="afficher()">
    <option>Elfe des Bois</option>
    <option>Elfe Noir</option>
    <option>Orc</option>
    <option>Noble</option>
    <option>Barbare</option>
    <option>Mort-Vivant</option>
    <option>Ange</option>
    <option>Atlante</option>
    <option>Démoniaque</option>
    <option>Nain</option>
    <option>Petite gens</option>
    <option>Goblin</option>
  </select>
</form>
 
<!-- Libellés des coefficients multiplicateurs -->
<form name="Coeff">
  <table cellpadding=5>
    <tr>
      <th>Recherche "Armes renforcées"</th>
      <th>Recherche "Balistique"</th>
   <th>Recherche "Armes Aériennes"</th>
    </tr>
    <tr>
      <td>
        <!-- Les options portent le même nom pour s'exclure mutuellement -->
        <input type="radio" name="Melee" value=1 onclick="recalculer()" checked>Aucune<br>
        <input type="radio" name="Melee" value=1.03 onclick="recalculer()">Level I (+3%)<br>
        <input type="radio" name="Melee" value=1.0918 onclick="recalculer()">Level II (+6%)<br>
        <input type="radio" name="Melee" value=1.15 onclick="recalculer()">Level III (=15%)<br>
      </td>
      <td>
        <input type="radio" name="Archer" value=1 onclick="recalculer()" checked>Aucune<br>
        <input type="radio" name="Archer" value=1.03 onclick="recalculer()">Level I (+3%)<br>
        <input type="radio" name="Archer" value=1.0918 onclick="recalculer()">Level II (+6%)<br>
        <input type="radio" name="Archer" value=1.15 onclick="recalculer()">Level III (=15%)<br>
      </td>
   <td>
        <input type="radio" name="Aerien" value=1 onclick="recalculer()" checked>Aucune<br>
        <input type="radio" name="Aerien" value=1.03 onclick="recalculer()">Level I (+3%)<br>
        <input type="radio" name="Aerien" value=1.0918 onclick="recalculer()">Level II (+6%)<br>
        <input type="radio" name="Aerien" value=1.15 onclick="recalculer()">Level III (=15%)<br>
      </td>
    </tr>
  </table>
</form>
 
<form name="Affichage">
  <table>
    <tr>
      <th>Personnage</th>  <!-- En-têtes de tableau -->
      <th>Puissance</th>
   <th>Type</th>
      <th>Compétence</th>
      <th>Nombre</th>
   <th>Puissance totale</th>
    </tr>
     <tr>
      <td> <input name="Nom0" type="text"> </td>
      <td> <input name="Val0" type="text"> </td>
      <td> <input name="Typ0" type="text"> </td>
      <td> <input name="Qual0" type="text"> </td>
      <td> <input name="Nb0" type="text"> </td>
      <td> <input name="Puis0" type="text"> </td>
    </tr>
    <tr>
      <td> <input name="Nom1" type="text"> </td>
      <td> <input name="Val1" type="text"> </td>
      <td> <input name="Typ1" type="text"> </td>
      <td> <input name="Qual1" type="text"> </td>
      <td> <input name="Nb1" type="text"> </td>
      <td> <input name="Puis1" type="text"> </td>
    </tr>
    <tr>
      <td> <input name="Nom2" type="text"> </td>
      <td> <input name="Val2" type="text"> </td>
      <td> <input name="Typ2" type="text"> </td>
      <td> <input name="Qual2" type="text"> </td>
      <td> <input name="Nb2" type="text"> </td>
      <td> <input name="Puis2" type="text"> </td>
    </tr>
     <tr>
      <td> <input name="Nom3" type="text"> </td>
      <td> <input name="Val3" type="text"> </td>
      <td> <input name="Typ3" type="text"> </td>
      <td> <input name="Qual3" type="text"> </td>
      <td> <input name="Nb3" type="text"> </td>
      <td> <input name="Puis3" type="text"> </td>
    </tr>
    <tr>
      <td> <input name="Nom4" type="text"> </td>
      <td> <input name="Val4" type="text"> </td>
      <td> <input name="Typ4" type="text"> </td>
      <td> <input name="Qual4" type="text"> </td>
      <td> <input name="Nb4" type="text"> </td>
      <td> <input name="Puis4" type="text"> </td>
    </tr>
    <tr>
      <td> <input name="Nom5" type="text"> </td>
      <td> <input name="Val5" type="text"> </td>
      <td> <input name="Typ5" type="text"> </td>
      <td> <input name="Qual5" type="text"> </td>
      <td> <input name="Nb5" type="text"> </td>
      <td> <input name="Puis5" type="text"> </td>
    </tr>
    <tr>
      <td> <input name="Nom6" type="text"> </td>
      <td> <input name="Val6" type="text"> </td>
      <td> <input name="Typ6" type="text"> </td>
      <td> <input name="Qual6" type="text"> </td>
      <td> <input name="Nb6" type="text"> </td>
      <td> <input name="Puis6" type="text"> </td>
    </tr>
    <tr>
      <td> <input name="Nom7" type="text"> </td>
      <td> <input name="Val7" type="text"> </td>
      <td> <input name="Typ7" type="text"> </td>
      <td> <input name="Qual7" type="text"> </td>
      <td> <input name="Nb7" type="text"> </td>
      <td> <input name="Puis7" type="text"> </td>
    </tr>
    <tr>
      <td> <input name="Nom8" type="text"> </td>
      <td> <input name="Val8" type="text"> </td>
      <td> <input name="Typ8" type="text"> </td>
      <td> <input name="Qual8" type="text"> </td>
      <td> <input name="Nb8" type="text"> </td>
      <td> <input name="Puis8" type="text"> </td>
    </tr>
     <tr>
      <td> <input name="Nom9" type="text"> </td>
      <td> <input name="Val9" type="text"> </td>
      <td> <input name="Typ9" type="text"> </td>
      <td> <input name="Qual9" type="text"> </td>
      <td> <input name="Nb9" type="text"> </td>
      <td> <input name="Puis9" type="text"> </td>
    </tr>
     <tr>
      <td> <input name="Nom10" type="text"> </td>
      <td> <input name="Val10" type="text"> </td>
      <td> <input name="Typ10" type="text"> </td>
      <td> <input name="Qual10" type="text"> </td>
      <td> <input name="Nb10" type="text"> </td>
      <td> <input name="Puis10" type="text"> </td>
    </tr>
    <tr>
      <td> <input name="Nom11" type="text"> </td>
      <td> <input name="Val11" type="text"> </td>
      <td> <input name="Typ11" type="text"> </td>
      <td> <input name="Qual11" type="text"> </td>
      <td> <input name="Nb11" type="text"> </td>
      <td> <input name="Puis11" type="text"> </td>
    </tr>
    <tr>
      <th>Puissance Totale</th>  <!-- En-têtes de tableau -->
      <th>Puissance Melee</th>
      <th>Puissance Archer</th>
      <th>Puissance Aerien</th>
    </tr>
 <tr>
      <td> <input name="PuisT" type="text"> </td>
      <td> <input name="PuisTm" type="text"> </td>
      <td> <input name="PuisTr" type="text"> </td>
      <td> <input name="PuisTa" type="text"> </td>
    </tr>
 
  </table>
</form>
 
</body>  <!-- FIN CORPS -->
</html>


 
bon pour le moment j'essaye juste d'incorporer le nombre en fonction de la puissance
-vient ensuite la capacité de defense ou d'attaque qui rajoutent un bonus/malus
-ensuite la lecture de rapports de combats pour comparer 2 armées...
 
Bref tout ca je l'ai fait sous excel mais la... j'ai avance un peu mais je bloque au niveau des additions des valeurs car au lieu de faire 'laddition il concatene les nombres...  
 
Pour ce qui est du calcualteru il etait pas visible aux anonymes (mais la c'est ok poru voir l'avancement... qui avance aps tres vite :d ... mais bon c'est un nouveau langage pour moi)
 
merci
 
//ps la fin est qu'une suite de tests plus ou moins foireux car pour la somme des puissances j'avais 1234 + 987=1234987 ... :??: donc j'ai essayé un peu tout


Message édité par mihai le 17-06-2006 à 01:44:03
n°16906
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 17-06-2006 à 11:46:38  
 

Pour les additions numériques, il faut convertir chaque terme en entier avec la fonction parseInt(). Avec une boucle et un eval(), le total se fait en une ligne... même si la formule peut paraître bien compliquée. Ça donne un truc du style :
 
document.Affichage.PuisT.value= 0;
for (i=0; i <11; i++)
  eval ("document.Affichage.PuisT.value += parseInt(document.Affichage.Puis"+i+".value);" );
 
J'y vois plus clair dans la méthode de calcul des puissances : chaque coefficient multiplicateur s'applique à un membre d'une armée en fonction de son type d'arme, et des totaux sont faits par type d'arme également, d'où la nécessité d'afficher toute l'armée.
 
J'essaie ton code chez moi, mais j'ai des problèmes car ça ne marche pas d'emblée. Je vais voir...


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16908
mihai
Animé-vore
Profil : Membre
Posté le 17-06-2006 à 12:21:11  
 

en fait c'est le += qui marche pas bizarrement... je l'avais deja essyé et c'est pour cela que j'ai laché l'affaire (mais bon j'avais aussi le pb de conversion)
 
 Marche ->parseInt(document.Affichage.Puis0.value,10)+
parseInt(document.Affichage.Puis1.value,10)+
parseInt(document.Affichage.Puis2.value,10)+
parseInt(document.Affichage.Puis3.value,10)+
parseInt(document.Affichage.Puis4.value,10)+
parseInt(document.Affichage.Puis5.value,10)+
parseInt(document.Affichage.Puis6.value,10)+
parseInt(document.Affichage.Puis7.value,10)+
parseInt(document.Affichage.Puis8.value,10)+
parseInt(document.Affichage.Puis9.value,10)+
parseInt(document.Affichage.Puis10.value,10)+
parseInt(document.Affichage.Puis11.value,10)
 
bon pour le moment j'ai tout mis a la suite ^^ et ca marche.
 
Reste plus qu'a:
-Faire un test sur le type et diviser la puissance en Aerien / Melee /archer
-Prendre en compte les habiletés(pour plus tard :d)


Message édité par mihai le 17-06-2006 à 13:10:42
n°16910
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 17-06-2006 à 12:52:24  
 

Rien ne t'interdit d'insérer des retours-chariot pour tronçonner ta ligne... Ça n'altèrera pas son sens.
 
Je ne sais pas ce qui cloche de mon côté (quand j'actionne la liste déroulante, JavaScript ne veut même pas entrer dans afficher()...) Je vais reprendre un fichier à moi pour étudier les coefficients et les quatre sommes du bas.


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16911
mihai
Animé-vore
Profil : Membre
Posté le 17-06-2006 à 13:11:17  
 

il y a pas une paranthese en trop? ou un truc comme ca?
 
->sous FF la console te dit pourquoi il bug...

n°16913
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 17-06-2006 à 15:10:43  
 

Non, ce n'était pas une parenthèse, mais une accolade, et une autre bricole... Effectivement, ce n'est pas mal, FireFox ! Je viens d'installer la version 1.5.0.4 et d'essayer sa console JavaScript. Je viens de découvrir aussi que Mozilla (que j'utilise pour l'internet) en a aussi une. Jusqu'ici, je me servais d'IE comme visionneuse de travaux non destinés à la "publication". J'écrivais ici-même il y a quelques temps :

Citation :

Le souci en JavaScript, ce sont les messages d'erreur. Dans mon navigateur, c'est juste un truc jaune qui s'allume quand ça ne va pas... Un rien lapidaire. (S'il y a un moyen d'en avoir de plus clairs avec IE ou Mozilla, j'aimerais bien le connaître.)

Je me sens moins bête, tout à coup. Merci du conseil.
 
Il faut désormais inclure les effectifs de chaque type de combattant (les "nombres" ) dans le tableau pour que le produit Puissance = Valeur x Nombre x Coefficient puisse fonctionner. Du reste, on peut remplir les quatre cases du bas avec la même boucle dans recalculer().


Message édité par jxano le 17-06-2006 à 15:12:05

---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16915
mihai
Animé-vore
Profil : Membre
Posté le 17-06-2006 à 19:34:01  
 

oui et non car si on a rien rempli et qu'on choisit la race on a aucune puissance...
 
apres il faut qu'il se lance des qu'il y a un nombre d'inscrit^^

n°16918
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 18-06-2006 à 00:19:24  
 

Voici, pour l'instant, le code des fonctions (je ne donne pas le reste, c'est trop long) :

Citation :

var choixArmee= 0; // No de classe choisie (en global pour utiliser dans les 2 fonctions)
 
function afficher () // Construit et remplit le tableau
  {
  // Renvoie un numéro entre 0 et nombre d'entrées - 1
  nbEntrees= document.Categories.ListeCategories.options.length;
  choixArmee = document.Categories.ListeCategories.options.selectedIndex;
   for (i= 0; i < nbEntrees; i++)
     {
     eval ("document.Affichage.Nom"+i+".value= personnage[choixArmee * 12 + i];" );
     eval ("document.Affichage.Qual"+i+".value= qualite[choixArmee * 12 + i];" );
     eval ("document.Affichage.Typ"+i+".value= type_unit[choixArmee * 12 + i];" );
     eval ("document.Affichage.Val"+i+".value= valeur[choixArmee * 12 + i];" );
     eval ("document.Affichage.Nb"+i+".value= 0;" );
     }
  recalculer (); // Prend en charge la colonne des puissances
  }
 
function recalculer () // Recalcule les valeurs en fonction de nouveaux coefficients
  {
  multMelee= 1;  multArcher= 1;  multAerien= 1; // Coefficients multiplicateurs
 
  nbOptions= document.Coeff.Melee.length; // Nombre d'options
  for (i=0; i < nbOptions; i++) // Lit la liste des options et relève la valeur portée par l'option cochée
    if (document.Coeff.Melee[i].checked) multMelee= document.Coeff.Melee[i].value;
 
  nbOptions= document.Coeff.Archer.length;
  for (i=0; i < nbOptions; i++)
    if (document.Coeff.Archer[i].checked) multArcher= document.Coeff.Archer[i].value;
 
  nbOptions= document.Coeff.Aerien.length;
  for (i=0; i < nbOptions; i++)
    if (document.Coeff.Aerien[i].checked) multAerien= document.Coeff.Aerien[i].value;
 
  nbEntrees= document.Categories.ListeCategories.options.length; // Tours de boucle
  sommeMelee= 0; sommeArcher= 0; sommeAerien= 0; // Mise à 0 totaliseurs
  for (i= 0; i < nbEntrees; i++)
    {
    // Variables intermédiaires pour simplifier les écritures
    caseNb= eval ("document.Affichage.Nb"+i);
    caseTyp= eval ("document.Affichage.Typ"+i);
    casePuis= eval ("document.Affichage.Puis"+i);
    caseVal= eval ("document.Affichage.Val"+i);
 
    if (caseTyp.value=="M" ) {
      casePuis.value = parseInt(caseVal.value) * parseInt(caseNb.value) * multMelee;
      sommeMelee += parseInt(casePuis.value);
      }
    if (caseTyp.value=="R" ) {
      casePuis.value = parseInt(caseVal.value) * parseInt(caseNb.value) * multArcher;
      sommeArcher += parseInt(casePuis.value);
      }
    if (caseTyp.value=="A" ) {
      casePuis.value = parseInt(caseVal.value) * parseInt(caseNb.value) * multAerien;
      sommeAerien += parseInt(casePuis.value);
      }
    }
  // Cases "totaux" du bas
  document.Affichage.PuisT.value= sommeMelee + sommeArcher + sommeAerien;
  document.Affichage.PuisTm.value= sommeMelee;
  document.Affichage.PuisTr.value= sommeArcher;
  document.Affichage.PuisTa.value= sommeAerien;
}

Le choix d'une nouvelle armée remet à zéro les cases nb0 à nb11 du tableau. Je me suis permis de changer le nom de la variable choixPerso en choixArmee ; pour ce que l'on traite, cela a plus de sens.
 
J'ai ajouté dans la définition des champs nb0 à nb11 la propriété « onChange="recalculer()" » pour que chaque nombre inscrit soit pris en compte immédiatement. Est-ce qu'un système permettant de passer le curseur directement à la case du dessous après chaque entrée serait utile ?
 
Que penses-tu du toilettage que je fais subir à ton code (indentation, nommage des variables) ? Je suis assez maniaque sur ces points (dans les magasins, je suis capable de remettre des produits en place...) Si ça te gêne, je peux être moins strict.


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
n°16932
mihai
Animé-vore
Profil : Membre
Posté le 19-06-2006 à 09:45:31  
 

^^ ben c'est ce que je voulais faire mais il y a un morceau qui a sauté car des qu'on modifie un nomre d'units la somme se met pas a jour...  
 
ce que je fais surement faire c'est soit mettre tout en automatique soit creer un bouton Calculer.
autre chose c'est : est il possible d'afficher par defaut la 1ere race par defaut comme pour une check box le "checked"
 
merci

n°16933
jxano
Le 'x' ? C'est pour décorer.
Profil : Membre
Posté le 19-06-2006 à 11:15:38  
 

En fait, pour les nombres, il faut que tu rajoutes ça dans les champs nb0 à nb11 du tableau :
 
<td> <input name="Nb0" type="text" onChange="recalculer()"> </td>
 
Pour l'affichage de la 1ère race par défaut, heu... Bonne question, mais je n'ai pas encore la réponse. Peut-être qu'il faut chercher du côté de la propriété defaultSelected de l'objet Option.


---------------
Miximus in lecto, fateor peccavimus hospes. Si dices quare nulla matella fuit !
 Page :   1  2
Page Précédente
  FORUM Rue-Montgallet.com
  Programmation
  Html

  Remplir un tableau suivant le choix dans une liste deroulante

© 2000-2024 Forum.rue-montgallet.com - Tous droits réservés