Transmettre nom de champ PHP à une fonction JS ?

Transmettre nom de champ PHP à une fonction JS ? - HTML/CSS - Programmation

Marsh Posté le 29-03-2006 à 09:21:26    

Bonjour,
 
Voici mon souci.
 
Je viens d'écrire un script qui me permet d'affichier un tableau de dependances entre LEVEL. Dans mon cas se sont des LEVEL d'archivages.
 
Ex:
 
Level1
- Sous Level2
-- Sous Level3
--- Sous Level4
 
Chaque nom de Level est précédée d'une ckeckbox. Le nom de cette checkbox est la concaténation de SET_LEVEL + ID du level en base.
 
Pour facilter les choix et valider les saisies je veux qui si l'on coche par exemple un level3, les levels 1 et 2 dépendants soient cochés (idem en décochant).
 
J'arrive à faire marcher ça en statique. Je bloque sur la transmission du nom de champ vers ma fonction JS.
 

Code :
  1. <SCRIPT language="javascript">
  2. function Check_Parent() {
  3. document.main.NOM_CHAMP.checked=1;
  4. }
  5. </script>


 
Une idée ?
 
Merci de votre aide.
 

Reply

Marsh Posté le 29-03-2006 à 09:21:26   

Reply

Marsh Posté le 29-03-2006 à 10:38:20    

j'utiliserais les fonctions dom, avec une bonne fonction recursive, un truc du genre

Code :
  1. function checkAllParent(node){
  2. if( node.parentNode.firstChild.tagName == 'input' && node.parentNode.firstChild.getAttribute('type') == 'checkbox'){
  3. node.parentNode.firstChild.getAttribute('checked', 'checked');
  4. }
  5. checkAllParent(node.parentNode.firstChild);
  6. }


Bon la j'ai supposé que l'input du level supérieur était le premier fils de node parent, mais il faudrait voir le code html de ta page pour être sur de la fonction!!
 
edit: je vois pas ou tu as besoin de php la dedans!!! :o


Message édité par anapajari le 29-03-2006 à 10:41:25
Reply

Marsh Posté le 29-03-2006 à 11:20:11    

merci de ta réponse.
 
 
En fait je parlais de PHP car mes mes noms de champs sont des variables.
Connaissant forcément les parents d'une checkbox je cherche à cocher ces boites avec une fonction JS prenant en parametre mes noms de champ.
 
Ex:
En arrivant sur un level 3 qui a pour nom SET_LEVEL_80 (SET_LEVEL_$ID) je sais que le pere niveau 2 est le 60 et le pere niveau 1 est le 40.
C'est ici que je fais appel à la fonction en lui donnant mes variables php péres en argument.
 
Le fonction se contente de cocher les elements passés en argument.
 
J'espère que je suis clair bien que j'en doute ;) ??
 
 
 

Reply

Marsh Posté le 29-03-2006 à 11:55:20    

Odin34 a écrit :

merci de ta réponse.
 
 
En fait je parlais de PHP car mes mes noms de champs sont des variables.
Connaissant forcément les parents d'une checkbox je cherche à cocher ces boites avec une fonction JS prenant en parametre mes noms de champ.
 
Ex:
En arrivant sur un level 3 qui a pour nom SET_LEVEL_80 (SET_LEVEL_$ID) je sais que le pere niveau 2 est le 60 et le pere niveau 1 est le 40.
C'est ici que je fais appel à la fonction en lui donnant mes variables php péres en argument.
 
Le fonction se contente de cocher les elements passés en argument.
 
J'espère que je suis clair bien que j'en doute ;) ??


Non pas super clair :o en même temps avec tout le code ça serait plus facile...
Mais encore une fois je vois pas trop pourquoi tu aurais besoin d'utiliser php pour generer les variables d'une fonction javascript (bien que ça soit tout a fait possible).
 
Perso j'aurais fait un truc dans le genre:

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
  4. <head>
  5.   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  6.   <title>Test</title>
  7.   <script type="text/javascript">
  8.   function checkAllParent(node){
  9.     if ( node == null || node.parentNode == null){ return true;}
  10.     var input=node.parentNode.getElementsByTagName('input');
  11.     for(var i=0;i<input.length; i++){
  12.       if( input.item(i).tagName == 'INPUT' && input.item(i).getAttribute('type') == 'checkbox'){
  13. input.item(i).setAttribute('checked', 'checked');
  14.         break;
  15.       }
  16.     }
  17.     checkAllParent(node.parentNode);
  18.   }
  19.   </script>
  20.   <style type="text/css">
  21.   .lvl1{ margin-left: 10px;}
  22.   .lvl2{ margin-left: 20px;}
  23.   .lvl3{ margin-left: 30px;}
  24.   </style>
  25. </head>
  26. <body >
  27. <form method="post" action="tapage.php" >
  28. <div class="lvl1">
  29.   niveau 1:<input type="checkbox" name="ck20" onclick="checkAllParent(this.parentNode)"/>
  30.   <div class="lvl2">
  31.     niveau 1.1 :<input type="checkbox" name="ck40" onclick="checkAllParent(this.parentNode)"/>
  32.     <div class="lvl3">
  33.       niveau 1.1.1:<input type="checkbox" name="ck80" onclick="checkAllParent(this.parentNode)"/><br/>
  34.       niveau 1.1.2:<input type="checkbox" name="ck81" onclick="checkAllParent(this.parentNode)"/><br/>
  35.       niveau 1.1.3:<input type="checkbox" name="ck82" onclick="checkAllParent(this.parentNode)"/><br/>
  36.     </div>
  37.   </div>
  38.   <div class="lvl2">
  39.     niveau 1.2:<input type="checkbox" name="ck50" onclick="checkAllParent(this.parentNode)"/>
  40.     <div class="lvl3">
  41.       niveau 1.2.1:<input type="checkbox" name="ck70" onclick="checkAllParent(this.parentNode)"/><br/>
  42.       niveau 1.2.2:<input type="checkbox" name="ck71" onclick="checkAllParent(this.parentNode)"/><br/>
  43.     </div>
  44.   </div>
  45. </div>
  46. </form>
  47. </body>
  48. </html>


edit: ça marche que pour cocher mais l'idée est la!


Message édité par anapajari le 29-03-2006 à 11:56:04
Reply

Marsh Posté le 29-03-2006 à 12:01:51    

OK
je te remercie vraiment.
Je vais travailler dessus et l'adapter.
 
Merci

Reply

Sujets relatifs:

Leave a Replay

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