eclipse012
Messages postés5Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention19 janvier 2007
-
16 janv. 2007 à 16:21
eclipse012
Messages postés5Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention19 janvier 2007
-
19 janv. 2007 à 12:52
bonjour a toutes a a tous !!
j'ai besoin d'aide concerant la mise a jour de listes deroulantes avec javascript
voila,
je gere un systeme de gestion de types de documents
et dans mon systeme j'ai une page "affichage par type.php " dans laquelle on selectionne un type, on selectionne les colonnes que l'on veut afficher et on valide pour voir les documents du type selectionné:
voici mes listes deroulantes de choix de colonne
en fait j'ai une page qui me permet d'editer les proprietes d'un type de document et dans cette page j'ai remis la meme liste deorulante pour avoir le nom des colonnes affichees par default; donc j'aimerai bien que dans la page affichage par type , des que j'ai selectionné le type , les listes deroulantes se mettent a jour avec les valeurs par default specifiees
ralecul
Messages postés111Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 1 août 2008 17 janv. 2007 à 16:09
Je n'ai visiblement pas bien compris ce vous souhaitez faire...
Même après relecture je ne comprend toujours pas, peut être qu'un lien
vers une page de démo pourrait m'aider, ou alors un screeshot des pages
entières ?
Je peut tout de même essayer l'hypothèse suivante :
-Vous souhaitez qu'à la sélection d'une option d'un select les autres
selects soient sélectionnés sur une autre valeur ? (difficile à
formuler et à comprendre...)
<script type="text/javascript">
function autoSelect()
{
var obj = document.getElementById('other');
var src = document.getElementById('source');
obj.selectedIndex = src.selectedIndex;
//ici l'option selectionne dans la source est applique au select de destination : other
}
</script>
<select id="source" onchange="autoSelect()">
<option name="1" value="1">1</option>
<option name="2" value="2">2</option>
<option name="3" value="3">3</option>
</select>
<select id="other">
<option name="1" value="1">1</option>
<option name="2" value="2">2</option>
<option name="3" value="3">3</option>
</select>
Comme je n'ai pas compris ce que vous souhaitez faire j'ai bien peur
que ce bout de code ne vous serve à rien mais on ne sait jamais...
ralecul
Messages postés111Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 1 août 2008 16 janv. 2007 à 19:47
Bonjour,
J'ai développé quelques fonctions pour ajouter ou retirer des options à un select en javascript :
//permet d'ajouter une option à un select (si une option existe déjà à cette position ->remplacement de l'existante)
//si il n'y a aucune option ajout de l'option en première position
function addOption(object,text,value,selected,position)
{
var defaultSelected = false;
var optionName = new Option(text, value, defaultSelected, selected)
if (object.options.length)
object.options[position] = optionName;
else
object.option = optionName;
}
//permet de supprimer une option au début ou à la fin
//mode = "head" : suppresion au début
//mode = "foot" : suppression à la fin
function removeOption(object, mode)
{
if (mode == "head")
{
if (object.options.length)
object.options[0] = null;
else
object.options = null;
}
else //mode == foot
{
var longueur = object.options.length;
if (longueur)
object.options[longueur-1] = null;
else
object.options = null;
}
}
Il suffit de faire une requete ajax sur le onchange du select et le resultat de la requete doit permetre d'ajouter ou de retirer des options a un autre select.
Un exemple complet est disponible sur le site de robloche : http://robloche.free.fr/javascript/tuto_xhr/tuto_xhr.html
eclipse012
Messages postés5Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention19 janvier 2007 17 janv. 2007 à 09:05
tout d'abord un grand merci d'avoir pris le temlps de repondre M.henri
en fait je ne m'y connais pas en ajax, et en fait c'est vrai que c'est bien mieux de pouvoir ajouter ou supprimer des colonnes select mais dans le cas de mon application , je prefere les garder , donc en fait j'ia toujours mes 6 listes deroulantes mais si par exemple dans le parametrage des types j'ai choisi la combinaison suivante
titre#vide#vide#date#vide#redacteur
j'aimerai bien que dans la page d'affichage des documents lorsque je choisis mon type, eh bien la premiere lise deroulante prenne pour valeur par defaut titre; la troisieme date et la sixieme redacteur par exemple , les autres restant a civde par dafault
merci pour voitre aide, je pense que j'ajout/suppression de listes rend les choses complqiees a mon niveau
avez vous des sites ou codes expliquant mon cas ? merci :)
eclipse012
Messages postés5Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention19 janvier 2007 18 janv. 2007 à 09:36
bonjour
voici le code que j'ai ecrit
en fait, le but de mon script , c'est que lorsque j'arrive dans mon formulaire , et que je choisis un type de document parmi une liste arborescente, mes combo box qui existent deja et qui sont initialisees a "vide" se mettent a jour automatiquement selon la valeur de la colonne code_affichage dans ma base de données, et ensuite , lorsque elles se sont mises a jour, je clique sur valider pour avoir tous les documents du type choisi et en affichannt que les colonne specifiees
<script type="text/javascript">
var types_tab = new Array; // Liste des Types de Documents
<?php
$types_tab = generate_types_tab(); //genere le tableau de tous les types de documents
$res = db_send_query("","SELECT NUM_TYPE, code_affichage FROM type_document");
while($row = db_fetch_assoc($res)){
$code_affichage = explode ("#", $row["code_affichage"]);
echo "types_tab[".$row['NUM_TYPE']."] = new Array("; //la j'essaie de construire une sorte de liste car dans ma base de données j'ai stocké
$list = ""; //les colonnes âr default sous la forme code_doc#libelle#none#none# etc ....par exemple
for($i=0;$i<sizeof($code_affichage);$i++){
$list .= "'".$code_affichage."',";
}
echo substr($list,0,sizeof($list)-1).");\n";
}
var_dump( $list);
?>
function update_liste_affichage(type) {
alert('bonjour');
eclipse012
Messages postés5Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention19 janvier 2007 18 janv. 2007 à 09:36
bonjour
voici le code que j'ai ecrit
en fait, le but de mon script , c'est que lorsque j'arrive dans mon formulaire , et que je choisis un type de document parmi une liste arborescente, mes combo box qui existent deja et qui sont initialisees a "vide" se mettent a jour automatiquement selon la valeur de la colonne code_affichage dans ma base de données, et ensuite , lorsque elles se sont mises a jour, je clique sur valider pour avoir tous les documents du type choisi et en affichannt que les colonne specifiees
<script type="text/javascript">
var types_tab = new Array; // Liste des Types de Documents
<?php
$types_tab = generate_types_tab(); //genere le tableau de tous les types de documents
$res = db_send_query("","SELECT NUM_TYPE, code_affichage FROM type_document");
while($row = db_fetch_assoc($res)){
$code_affichage = explode ("#", $row["code_affichage"]);
echo "types_tab[".$row['NUM_TYPE']."] = new Array("; //la j'essaie de construire une sorte de liste car dans ma base de données j'ai stocké
$list = ""; //les colonnes âr default sous la forme code_doc#libelle#none#none# etc ....par exemple
for($i=0;$i<sizeof($code_affichage);$i++){
$list .= "'".$code_affichage."',";
}
echo substr($list,0,sizeof($list)-1).");\n";
}
var_dump( $list);
?>
function update_liste_affichage(type) {
alert('bonjour');