Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
731 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Question javscript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question javscript

n°1957488
Magg27
Posté le 13-01-2010 à 12:27:01  profilanswer
 

Bonjour,
 
J'ai créé cette fonction javascript qui me permet de changer le style des lignes sélectionnées dans un tableau/formulaire et de checker le bouton radio correspondant :
 

Code :
  1. function select(tr,idradio)
  2. {
  3. if (tr.className!="police_table2" )
  4. {
  5.  var lestr = document.getElementsByName("trselect" );
  6.  for (i=0; i<lestr.length; i++)
  7.  {
  8.   if (lestr[i].className=="police_table2" )
  9.   {
  10.    lestr[i].className="police_table";
  11.   }
  12.  }
  13.  tr.className="police_table2";
  14.  document.getElementById(idradio).checked=true;
  15. }
  16. }


 
Ce script marche très bien à condition qu'il n'y ai qu'un seul tableau/formulaire.
 
Si je veux en ajouter un autre il faut que je fasse un nouveau script adapté aux nouveaux idtr et idradio et c'est pas top.
 
Le truc que j'aimerais bien faire c'est de garder les même idtr et idradio pour tous les formulaire en ne changeant juste que l'id du formulaire et arriver à un code normalisé comme celui-ci
 

Code :
  1. function select(tr,idradio,idform)
  2. {
  3. if (tr.className!="police_table2" )
  4. {
  5.  var lestr = document.idform.getElementsByName("trselect" );
  6.  for (i=0; i<lestr.length; i++)
  7.  {
  8.   if (lestr[i].className=="police_table2" )
  9.   {
  10.    lestr[i].className="police_table";
  11.   }
  12.  }
  13.  tr.className="police_table2";
  14.  document.idform.getElementById(idradio).checked=true;
  15. }
  16. }


En plaçant l'idform en paramètre.
Mais évidemment ce code ne marche pas mais l'idée y est.
Ca m'éviterai de créer une version de ce script pour chacun de mes formulaires ...
 
Savez-vous comment je peux faire ça ?

mood
Publicité
Posté le 13-01-2010 à 12:27:01  profilanswer
 

n°1957525
pataluc
Posté le 13-01-2010 à 14:06:57  profilanswer
 

tu peux poster un extrait de ton html?


Message édité par pataluc le 13-01-2010 à 14:07:04
n°1957539
Magg27
Posté le 13-01-2010 à 14:26:23  profilanswer
 

Pas de problème :
 

Code :
  1. <!--Table 1 !-->
  2. <table name="contrat_hardware">
  3. <tr id="trselect<?php echo $ContratHW_Id; ?>" name="trselect"  onclick="select(this,<?php echo $ContratHW_Id; ?> );" class="police_table"><td><input name="radio" type="radio" id="<?php echo $ContratHW_Id; ?>" /></td>
  4. <td><?php echo $Solution_Type; ?></td>
  5. <td><?php echo $HW_Num_Serie; ?></td>
  6. <td><?php echo $ContratHW_Num_Order; ?></td>
  7. <td><?php echo $ContratHW_Niveau_Maintenance; ?></td>
  8. <td><?php echo $ContratHW_Date_Fin_Garantie_HW_Customer; ?></td>
  9. <td><?php echo $ContratHW_Date_Fin_Garantie_HW_Supplier; ?></td>
  10. <td><?php echo $ContratHW_ContractingOrg; ?></td>
  11. <td><?php echo $ContratHW_Contractor; ?></td>
  12. </tr>
  13. </table>
  14. <!-- Table 2 !-->
  15. <table name="contrat_sw">
  16. <tr id="trselect<?php echo $ContratSW_Id; ?>" name="trselect"  onclick="select(this,<?php echo $ContratSW_Id; ?> );" class="police_table"><td><input name="radio" type="radio" id="<?php echo $ContratSW_Id; ?>"  /></td>
  17. <td><?php echo $Solution_Type; ?></td>
  18. <td><?php echo $Product_Designation; ?></td>
  19. <td><?php echo $Product_Version; ?></td>
  20. <td><?php echo $ContratSW_Product_License; ?></td>
  21. <td><?php echo $ContratSW_Etat; ?></td>
  22. <td><?php echo $ContratSW_Product_NiveauMaint; ?></td>
  23. <td><?php echo $ContratSW_Product_DateExp; ?></td>
  24. <td><?php echo $ContratSW_Cares; ?></td>
  25. </tr>
  26. </table>
  27. <!-- Table 3 !-->
  28. <table name="offres">
  29. <tr id="trselect<?php echo $Offre_Id; ?>" name="trselect" onclick="select(this,<?php echo $Offre_Id; ?> );"  class="police_table"><td><input name="radio" type="radio" id="<?php echo $Offre_Id; ?>"  /></td>
  30. <td><?php echo $Offre_Libelle; ?></td>
  31. <td><?php echo $Offre_Date; ?></td>
  32. <td><?php echo $Offre_Tarif; ?></td>
  33. </tr>
  34. </table>


 
Je voudrais que la fonction javascript select prenne en compte le name de la table pour faire son traitement ...
Faudrait quelquechose du genre document.name_de_la_table.getElementById ou getElementByName, mais bon ça marche pas ...
 
Si tu as une idée, je te remercie de me le faire savoir !


Message édité par Magg27 le 13-01-2010 à 14:27:09
n°1957565
pataluc
Posté le 13-01-2010 à 15:26:06  profilanswer
 

pour aller au plus simple, il faudrait utiliser jquery (ou un autre framework javascript), qui te permettrait d'écrire:

Code :
  1. function select(tr,idradio,idform)
  2. {
  3.   if (tr.className!="police_table2" )
  4.   {
  5.     $(idform + " > trselect" ).each(function(){
  6.         if (this.className=="police_table2" )
  7.         {
  8.           this.className="police_table";
  9.         } 
  10.       }
  11.     }
  12.     tr.className="police_table2";
  13.     $(idform + " #" + idradio).checked = true;
  14.   }
  15. }

(attention, j'ai écrit ca comme ca c'est pas testé je sais pas si ca marche, mais c'est l'idée...)

 


sinon j'ai un peu de mal à voir l'intérêt d'avoir 3 tableaux d'une ligne chacun???


Message édité par pataluc le 13-01-2010 à 15:28:02
n°1957571
Magg27
Posté le 13-01-2010 à 15:46:19  profilanswer
 

OK Merci pataluc, ça tombe bien j'ai jquery, je vais donc essayer ton script !

 

Il n'y a pas qu'une ligne dans chaque tableau : c'était qu'un extrait du code, il y a une boucle for pour chacune des table.


Message édité par Magg27 le 13-01-2010 à 15:46:45

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Question javscript

 

Sujets relatifs
[Python] Questions de nOobCSS pas pris en compte + question sur firebug
question sur polyline avec dxflib[Resolu][C++] Question Architecture avec interface multiple
Question sur les dll(resolu) Problème de positionnement d'un bouton CSS
Question sur la réservation mémoire[CSS] Question de mise en page/structure générale (résolu)
Question SOAPQuestion de compatibilité internet explorer 7 et inférieur
Plus de sujets relatifs à : Question javscript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR