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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  utilisation de script js plusieurs fois dans une même page

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

utilisation de script js plusieurs fois dans une même page

n°2008153
Tribalnana​sss
Posté le 08-07-2010 à 18:40:18  profilanswer
 

Bonjour tout le monde,
 
j'ai un soucis avec javascript;
j'aimerai afficher autant de fois que l'utilisateur le veut certains champs. J'ai donc creer des objet avec des onchange pour les faire apparaître.
Seulement, quand j'arrive au dernier onchange et qu'il renvoie au 1er, toutes les autres listes s'effacent pour revenir au même point qu'au depart.
Je me suis dis que c'etait peu être un problème de nom de champs que j'ai voulu corriger en concatenant un chiffre à la fin du nom du champs. Mais la variable revient également à 0...
Je vous mets le code pour plus de compréhension.

Code :
  1. <?php
  2. echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n" );
  3. ?>
  4. <html  xml:lang="fr" >
  5. <head>
  6. <script type="text/javascript" src="./arrayPHP2JS.js" charset="iso_8859-1"></script>
  7. <script type="text/javascript" src="./changeValeur.js" charset="iso_8859-1"></script>
  8. <script type="text/javascript" src="./operateur.js" charset="iso_8859-1"></script>
  9. <script type="text/javascript" src="./appChamps.js" charset="iso_8859-1"></script>
  10.  
  11. <title> Base de données ARECOFA </title>
  12. </title>
  13. <br/><br/><u><font size=+50 color=seagreen> <center> Test : </center></font></u>
  14. <br/><br/><br/><br/>
  15. <?php
  16. $link=mysql_connect("localhost", "root", "" ) OR die('Erreur de connexion');
  17. mysql_select_db("arecofa" );
  18. $req=mysql_query("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='produit' or TABLE_NAME='fabricant'" ) or die ("requete impossible" );
  19. $champs=array();
  20. while ($row = mysql_fetch_array($req))
  21.  {//echo "colonne : $row[0] <br/>";
  22.  if ($row[0] != "num_fabricant" and $row[0] != "num_de_produit" and $row[0] != "photo" and $row[0] != "adresse" and $row[0] != "description" )
  23.   {$recherche=mysql_query("select distinct $row[0] from produit, fabricant " );
  24.   $id = 0;
  25.   $temoin_t=0;
  26.   //echo "champs : <br/>";
  27.   while($ligne = mysql_fetch_assoc($recherche))
  28.    {$p = $row[0];
  29.    $v = $ligne[$row[0]];
  30.    if ($temoin_t==0)
  31.     {$champs[$p]=array();
  32.     $champs[$p][1] = array();
  33.     $champs[$p][2] = array();
  34.     $temoin_t=1;
  35.     }
  36.    $champs[$p][1][$id] = $v;
  37.    $champs[$p][2][$id] = $ligne[$row[0]];
  38.    $id++;
  39.    }
  40.   }
  41.  else
  42.   {if($row[0] == "adresse" or $row[0] == "description" )
  43.    {$p = $row[0];
  44.    $champs[$p] = array();
  45.    $champs[$p][1] = array();
  46.    $champs[$p][2] = array();
  47.    $champs[$p][1][0] = "";
  48.    $champs[$p][2][0] = "";
  49.    }
  50.   }
  51.  }
  52.  $chaine = htmlspecialchars(serialize($champs), ENT_QUOTES);
  53.  ?>
  54.  <script type="text/javascript">
  55.  /* <![CDATA[ */
  56.  <!--
  57.  /*
  58.  * Ici, on transmets la chaîne sérialisée à JavaScript  
  59.  * pour la transformer en tableau indexé JavaScript  
  60.  */
  61.  var tableau = new PhpArray2Js('<?php echo $chaine; ?>');
  62.  var tab = tableau.retour();
  63.  var k =0;
  64.  // -->
  65.  /* ]]> */
  66.  </script>
  67. </head>
  68. <body style="background:lightgreen" link=darkgreen vlink=green>
  69.  <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgprod">
  70.  <legend>Sélectionnez un champs puis une condition et une valeur </legend>
  71.  <select name="champs0" id="champs0" onchange="changeValeur(tab,this.value,k);">
  72.    <option value="vide">- - - Choisissez un champs - - -</option>
  73.   <?php
  74.   /* Construction de la première liste : on se sert du tableau PHP */
  75.   $nbr = count($champs);
  76.   foreach($champs as $nr => $nom)
  77.    {$ch = "$nr"."0";
  78.    ?>
  79.    <option value="<?php echo($ch); ?>"><?php echo($nr); ?></option>
  80.    <?php
  81.    }
  82.   ?>
  83.  </select>
  84.   <span id="blocValeur"></span>
  85.  
  86.   <br/><br/>
  87.   <input type="submit" name="ok" id="ok" value="Envoyer" />
  88.  </form>
  89. </body>
  90. </html>


 
fichiers javascript :

Code :
  1. /* On crée la fonction qui va construire la seconde liste déroulante */
  2. function changeValeur(tab, champs_reg, k)
  3. {var reg = /^[a-zA-Z]+/;
  4. var champs = reg.exec(champs_reg);
  5. if(champs != "vide" && champs != "description" && champs != "adresse" )
  6.  {var nbd = tab[champs][1].length;
  7.  form_d += '<select name="condition" id="condition" > <option value="vide">- - - Choisissez une condition - - -</option> <option value="egal">égal</option> <option value="sup">supérieur à </option> <option value="inf">inférieur à</option> <option value="sup_eg">supérieur ou égal à</option> <option value="inf_eg">inférieur ou égal à</option> <option value="plus_gd"> le plus grand </option> <option value="plus_petit">le plus petit</option> </select> ';
  8.  form_d  += '<select name="valeur" id="nom_valeur" onchange="operateur(tab, this.value,k);">';
  9.  form_d  += '<option value="vide">- - - Choisissez une valeur - - -</option>';
  10.  for(var j = 0;  j < nbd; j++)
  11.   {if (tab[champs][1][j] != undefined)
  12.    {form_d += '  <option value="'+ tab[champs][1][j] +k+'">'+ tab[champs][2][j] +'<\/option>';
  13.    }
  14.   }
  15.  form_d += '<\/select>';
  16.  }
  17.     else
  18.     {if(champs == "adresse" || champs == "description" )
  19.  {var form_d = '<select name="condition" id="condition" > <option value="vide">- - - Choisissez une condition - - -</option> <option value="contient">contient</option> <option value="contient_pas"> ne contient pas </option> </select> ';
  20.  form_d  += '<input type="text" name = "'+ champs +k+'" value = "Tapez votre recherche ici" size = "50" onchange="operateur(tab, this.value,k);" />';
  21.  }
  22. else
  23.  {form_d = "";
  24.  }
  25.     }
  26. form_d += 'k : '+k+' <br/><br/><span id="blocOperateur"></span>';
  27.     document.getElementById("blocValeur" ).innerHTML = form_d;
  28. }


 

Code :
  1. function operateur(tab, champs,k)
  2. {k++;
  3. if(champs != "vide" )
  4.  {var form_d = 'k : '+k+' Choisissez une condition si vous voulez rajouter un élément de recherche <br/>';
  5.  form_d += '<select name="operateur" id="operateur" onchange="appChamps(tab,this.value,k);"> <option value="vide"></option> <option value="et">ET</option> <option value="ou">OU</option> </select> ';
  6.  }
  7.     else
  8.  {var form_d = "";
  9.  }
  10. form_d += '<br/><br/><span id="blocChamps"></span>';
  11.     document.getElementById("blocOperateur" ).innerHTML = form_d;
  12. }


 

Code :
  1. function appChamps(tab, champs,k)
  2. {if(champs != "vide" )
  3.  {var form_d = '<select name="champs" id="nom_champs" onchange="changeValeur(tab, this.value,k);">';
  4.  form_d  += '<option value="vide">- - - Choisissez un champs - - -</option>';
  5.  for (i in tab)
  6.   {form_d += '<option value="'+i+k+'">'+i+'</option>';
  7.   }
  8.  form_d += '</select> ';
  9.  }
  10.     else
  11.  {var form_d = "";
  12.  }
  13. form_d += '<br/><br/><span id="blocValeur"></span>';
  14.     document.getElementById("blocChamps" ).innerHTML = form_d;
  15. }


 
Merci à tous ceux qui ont pris la peine de me lire !


Message édité par Tribalnanasss le 08-07-2010 à 18:41:26
mood
Publicité
Posté le 08-07-2010 à 18:40:18  profilanswer
 


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

  utilisation de script js plusieurs fois dans une même page

 

Sujets relatifs
script vba pour outlook seveur 2007... aidePerte de la page administration Joomla !!
PB création et utilisation VAR environement.script avec un print qui ne marche pas
Validation de ma page phpAfficher date dans master page
[Résolu] utilisation de onclick et location.hrefscript shell + awk
Problème script avec joomlaprotéger une page avec un mot de passe?
Plus de sujets relatifs à : utilisation de script js plusieurs fois dans une même page


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