IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

liaison deux tables dans une boucle


Sujet :

JavaScript

  1. #1
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 9
    Par défaut liaison deux tables dans une boucle
    Bonjour!

    Alors voilà mon problème :

    j'ai une boucle 'foreach' qui devrait me permettre de remplacer tous mes titres de colonne dans un tableau les uns après les autres.
    Pour éviter le renommage aléatoire, je cherche à proposer des noms au futur utilisateur à l'aide de deux listes déroulantes liées. Cette valeur devra apparaître dans un champ texte auquel il n'auront plus qu'à ajouter un numéro.

    Problème n°1 : mes deux listes sont bien liées or de la boucle, mais dès que je les mets dedans, elles ne se reconnaissent plus.

    Problème n°2 : je n'arrive pas à récupérer la valeur de la deuxième liste pour la mettre dans un champ texte.

    interface.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    var table = new Array;
    table[0] = new Array("ARN_", "ARN");
    table[1] = new Array("CENTER_", "CENTER");
    table[2] = new Array("CONTRIBUTORS_", "CONTRIBUTORS");
     
    var champs=new Array;
    champs["ARN_"] = new Array; //ARN
    champs["ARN_"][0] = new Array("t0c0", "ARN-ID_ARN");
    champs["ARN_"][1] = new Array("t0c1", "ARN-RIN");
    champs["ARN_"][2] = new Array("t0c2", "ARN-ID_YIELD");
    champs["ARN_"][3] = new Array("t0c3", "ARN-ID_QUANTITY");
    champs["ARN_"][4] = new Array("t0c4", "ARN-ID_MITOSE");
    champs["ARN_"][5] = new Array("t0c5", "ARN-ID_MIT_NB");
     
    champs["CENTER_"] = new Array; //CENTER
    champs["CENTER_"][0] = new Array("t1c0", "CENTER-ID_CENTER");
    champs["CENTER_"][1] = new Array("t1c1", "CENTER-NAME_CENTER");
     
    champs["CONTRIBUTORS_"] = new Array; //CONTRIBUTORS
    champs["CONTRIBUTORS_"][0] = new Array("t2c0", "CONTRIBUTORS-ID_CONTRIB");
    champs["CONTRIBUTORS_"][1] = new Array("t2c1", "CONTRIBUTORS-NAME_CONTRIB");
     
    	function filltheselect(liste, choix)
    	{
    	raz("listechamps");
    		for (i=0; i<champs[choix].length; i++)
    		{new_option = new Option(champs[choix][i][1],champs[choix][i][0]);
    		document.formu.elements["listechamps"].options[document.formu.elements["listechamps"].length]=new_option;
    		}
    	}
     
    	function raz(liste)
    	{l=document.formu.elements[liste].length;
    	for (i=l; i>=0; i--)
    		document.formu.elements[liste].options[i]=null;
    	}
    Dans le script js filltheselect il faut apparemment que j'ajoute un argument pour indiquer quel select il faut modifier mais je ne sais pas comment m'y prendre..


    interface.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <html>
    <head>
    	<title>Interface</title>
    	<script type='text/javascript' src='interface.js'></script>
    </head>
     
    <body>
    <?php
     
    echo "<form action='remplacer.php' method='POST' name='formu'>";
     
    $i = 0;
    foreach ($titres as $nom_col){
    	echo "<div style='margin-top:20px' id='bloc_parent_$i'>";
    	echo "<select name='listetable_$i' onChange='filltheselect(this.name, this.value)'>";
    	echo "<script language='javascript'>
    	for (i=0; i<table.length; i++)
    		document.write('<option value=\'' +table[i][0]+ '\'>' +table[i][1]);
    	</script>";
    	echo "</select>";
     
    	echo "<select name='listechamps_$i' onChange='filltheselect(this.name, this.value)'>";
    	echo "<script language='javascript'>
    	for (i=0; i<champs['t0'].length; i++)
    		document.write('<option value=\'' +champs['t0'][i][0]+ '\'>' +champs['t0'][i][1]);
    	</script>";
    	echo "</select><br>";
     
    	echo "$nom_col remplacer par : <input type = 'text' name='titre[$nom_col]' id='item' value='' >";
     
    	echo "</div>";
     
    	$i++;
    }
    echo "<input type='submit' name='envoyer' value='envoyer'>";
    echo "</form>";
     
    ?>
    </body>
    </html>

    Dans cette partie
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "$nom_col remplacer par : <input type = 'text' name='titre[$nom_col]' id='item' value='' >";
    je voudrais qu'il pré-affiche ce qu'on a coché dans la deuxième liste.
    Je voulais le faire avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Onchange="document.getElementById('item').value = this.value;"
    mais je ne pense pas qu'on puisse mettre deux onChange dans un select, si??

    Je sais j'en demande beaucoup mais je débute et ça fait plusieurs jours que je suis dessus et là je m'en sors pas...

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Nous avons déjà parlé de ce sujet, non ? Je ne me souviens plus bien.
    Il nous faudrait le code HTML généré.

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par vermine Voir le message
    Nous avons déjà parlé de ce sujet, non ?
    Exact

    A+

  4. #4
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 9
    Par défaut
    Oui c'est vrai

    Mais au fur et à mesure que j'arrive à faire fonctionner quelque chose mon cahier des charges change du coup j'ai l'impression de tourner en rond!!!

    Le code html généré je peux l'afficher comment? C'est le code source?

    Si oui, j'en mets une partie là (pas en entier, il génère 117 000 caractères et ça rentre pas...)
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <html>
    <head>
    	<title>Interface</title>
    	<script type='text/javascript' src='interface.js'></script>
    </head>
     
    <body>
    <form action='remplacer.php' method='POST' name='formu'><div style='margin-top:20px' id='bloc_parent_0'><select name='listetable_0' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<table.length; i++)
    		document.write('<option value=\'' +table[i][0]+ '\'>' +table[i][1]);
    	</script></select><select name='listechamps_0' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<champs['t0'].length; i++)
    		document.write('<option value=\'' +champs['t0'][i][0]+ '\'>' +champs['t0'][i][1]);
    	</script></select><br>ID remplacer par : <input type = 'text' name='titre[ID]' id='item' value='' ></div><div style='margin-top:20px' id='bloc_parent_1'><select name='listetable_1' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<table.length; i++)
    		document.write('<option value=\'' +table[i][0]+ '\'>' +table[i][1]);
    	</script></select><select name='listechamps_1' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<champs['t0'].length; i++)
    		document.write('<option value=\'' +champs['t0'][i][0]+ '\'>' +champs['t0'][i][1]);
    	</script></select><br>tag remplacer par : <input type = 'text' name='titre[tag]' id='item' value='' ></div><div style='margin-top:20px' id='bloc_parent_2'><select name='listetable_2' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<table.length; i++)
    		document.write('<option value=\'' +table[i][0]+ '\'>' +table[i][1]);
    	</script></select><select name='listechamps_2' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<champs['t0'].length; i++)
    		document.write('<option value=\'' +champs['t0'][i][0]+ '\'>' +champs['t0'][i][1]);
    	</script></select><br>GGI remplacer par : <input type = 'text' name='titre[GGI]' id='item' value='' ></div><div style='margin-top:20px' id='bloc_parent_3'><select name='listetable_3' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<table.length; i++)
    		document.write('<option value=\'' +table[i][0]+ '\'>' +table[i][1]);
    	</script></select><select name='listechamps_3' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<champs['t0'].length; i++)
    		document.write('<option value=\'' +champs['t0'][i][0]+ '\'>' +champs['t0'][i][1]);
    	</script></select><br>scaledGGI remplacer par : <input type = 'text' name='titre[scaledGGI]' id='item' value='' ></div><div style='margin-top:20px' id='bloc_parent_4'><select name='listetable_4' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<table.length; i++)
    		document.write('<option value=\'' +table[i][0]+ '\'>' +table[i][1]);
    	</script></select><select name='listechamps_4' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<champs['t0'].length; i++)
    		document.write('<option value=\'' +champs['t0'][i][0]+ '\'>' +champs['t0'][i][1]);
    	</script></select><br>GGIclass remplacer par : <input type = 'text' name='titre[GGIclass]' id='item' value='' ></div><div style='margin-top:20px' id='bloc_parent_5'><select name='listetable_5' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<table.length; i++)
    		document.write('<option value=\'' +table[i][0]+ '\'>' +table[i][1]);
    	</script></select><select name='listechamps_5' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<champs['t0'].length; i++)
    		document.write('<option value=\'' +champs['t0'][i][0]+ '\'>' +champs['t0'][i][1]);
    	</script></select><br>Her2.score remplacer par : <input type = 'text' name='titre[Her2.score]' id='item' value='' ></div><div style='margin-top:20px' id='bloc_parent_6'><select name='listetable_6' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<table.length; i++)
    		document.write('<option value=\'' +table[i][0]+ '\'>' +table[i][1]);
    	</script></select><select name='listechamps_6' onChange='filltheselect(this.name, this.value)'><script language='javascript'>
    	for (i=0; i<champs['t0'].length; i++)
    		document.write('<option value=\'' +champs['t0'][i][0]+ '\'>' +champs['t0'][i][1]);
    	</script></select><br>

Discussions similaires

  1. [MySQL] Passer deux fois dans une boucle
    Par Henry9 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/07/2007, 16h40
  2. Concaténer deux variables dans une boucle
    Par jeremie74 dans le forum Flash
    Réponses: 2
    Dernier message: 22/05/2007, 19h51
  3. UPDATE de deux tables dans une meme requete
    Par onizuka159 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/05/2007, 14h09
  4. manipuler une table dans une boucle.
    Par DonQuiShoote dans le forum Access
    Réponses: 13
    Dernier message: 28/02/2007, 08h05
  5. [FLASH MX2004] Deux conditions dans une boucle
    Par pierrot10 dans le forum Flash
    Réponses: 1
    Dernier message: 06/11/2005, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo