...

View Full Version : Passing parameter



jaz22
10-02-2008, 12:35 PM
I am developing in perl + html…
I have three combo boxes and a button that allow the dynamic addition of another three dropdowns(as many times as I wish).

The HTML code is as follows:

print "<td><select name=plateforme0 style=\"COLOR:#666666;font-weight: bold;width:200\" onChange=\"reload(this.form.plateforme0.options[this.form.plateforme0.selectedIndex].text)\"><option></option>";
foreach (@plateforme_f) { print "<option>$_->[0]</option>";}
print "</select></td></tr>\n";
#foreach (@plateforme) { print "<option>$_->[0] - $_->[2]</option>";}
print "<tr><td width=230>Carte</td>";
print "<td><select name=carte0 style=\"COLOR:#666666;font-weight: bold;width:200\" onChange=\"reload_carte(this.form.carte0.options[this.form.carte0.selectedIndex].text)\"><option></option>";
print "</select></td></tr>\n";

print "<tr><td>Version</td>";
print "<td><select name=version0 style=\"COLOR:#666666;font-weight: bold;width:200\" ><option></option>";
print "</select>";

print "<td><input type=hidden id=\"theValue\" value=\"0\" /><a href=\"javascript:;\" onclick=\"addElement();\">add</a></td><br/>";

The part => onChange=\"reload(this.form.plateforme0.options[this.form.plateforme0.selectedIndex].text)\" will call a javascript function that will update the options in the second combo box.

JAVASCRIPT code to add 3 dynamic combo boxes:

print "function addElement()";
print "{";

my @plateforme_f = $_BD->select("SELECT DISTINCT plateforme FROM kagoor_versions ORDER BY plateforme ASC");
print "var html = document.getElementById('myDiv').innerHTML;";
print "document.getElementById('myDiv').innerHTML=html+'<table><td width=230>Plateforme</td><td><select name=plateforme'+x+' style=\"COLOR:#666666;font-weight: bold;width:200\" onChange=\"reload(this.form.plateforme'+x+'.options[this.form.plateforme'+x+'.selectedIndex].text)\"><option></option>";
foreach (@plateforme_f)
{
print "<option>$_->[0]</option>";
}
print "</select></td>";
print "<td width=45></td><tr><td width=230>Carte</td><td><select name=carte'+x+' style=\"COLOR:#666666;font-weight: bold;width:200\" onChange=\"reload_carte()\"><option></option>";
print "</select></td>";
print "<tr><td>Version</td>";
print "<td><select name=version style=\"COLOR:#666666;font-weight: bold;width:200\" ><option></option>";
print "</select></tr></table>';";
print "x++;";
print "}";

JAVASCRIPT CODE TO UPDATE COMBO BOX

print "function reload(y)";
print "{";

print "var val=y;\n";
print "alert(val);\n";
my @q2 = $_BD->select("select DISTINCT plateforme FROM kagoor_versions");

foreach (@q2)
{
print "if(val == '$_->[0]'){";

my @q3 = $_BD->select("select carte_SIG_H323 from kagoor_versions where plateforme='$_->[0]' AND carte_SIG_H323<>''");
print "removeAllOptions(document.formu.carte);";

foreach (@q3)
{
print "addOption(document.formu.carte,'$_->[0]', '$_->[0]');";
}
print "}";

}
print "}";

print "function removeAllOptions(selectbox)
{
var i;
for(i=selectbox.options.length-1;i>=0;i--)
{
selectbox.remove(i);
}
}

function addOption(selectbox, value, text )
{
var optn = document.createElement(\"OPTION\");
optn.text = text;
optn.value = value;
selectbox.options.add(optn);
}";

The first 3 original combo works fine.

The problem is when I add three additional combo and when I select an option for the first combo, the second combo is not updated. I am unable to pass the right combo i.e carte1 (when x=1) P in the function removeAllOptions(document.formu.carte).:confused:
Can anybody please help.
Thanks.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum