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:
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:
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:
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:
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... :calim2: