i'm having trouble with a php form. i have a multiselect where i have selected all or a few of the options displayed. but no matter what i do the result is always the last option and nothing else.
var AvailableTracksMM = new Array(
new Array('Malung', '2', 'Malung'),
new Array('Hedemora', '2', 'Hedemora'),
new Array('Orsa', '2', 'Orsa'),
new Array('Ludvika', '2', 'Ludvika'),
new Array('Smedjebacken', '2', 'Smedjebacken'),
new Array('Vansbro', '2', 'Vansbro'),
new Array('Leksand', '2', 'Leksand'),
new Array('Sater', '2', 'Sater'),
new Array('Borlange', '2', 'Borlange'),
new Array('Rattvik', '2', 'Rattvik'),
new Array('Gagnef', '1', 'Gagnef'),
new Array('Mora', '1', 'Mora'),
new Array('Alvdalen', '1', 'Alvdalen'),
new Array('Avesta', '1', 'Avesta'),
new Array('Falun', '1', 'Falun'),
new Array('Salvesborg', '1', 'Salvesborg'),
new Array('Olofstram', '1', 'Olofstram'),
new Array('Ronneby', '1', 'Ronneby'),
new Array('Karlskrona', '1', 'Karlskrona'),
new Array('Karlshamn', '1', 'Karlshamn')
);
function updateAvailableTracks(id) {
var intAvailableTracks = 0;
var select = 0;
var parentId = 0;
eval('var objArtist = getForm(\'tracks\', \'regForm\').Artist_' + id + ';');
eval('var objAvailableTracks = getForm(\'tracks\', \'regForm\').AvailableTracks_' + id + ';');
eval('var objPlaylist = getForm(\'tracks\', \'regForm\').Playlist_' + id + ';');
function getForm(layer, form) {
var retval='';
if (document.layers) {
eval('retval = document.layers.'+layer+'.document.'+form);
} else {
eval('retval = document.'+form);
}
return retval;
}
function addTrack(id) {
eval('var objAvailableTracks = getForm(\'tracks\', \'regForm\').AvailableTracks_' + id + ';');
eval('var objPlaylist = getForm(\'tracks\', \'regForm\').Playlist_' + id + ';');
for (var i = 0; i < objAvailableTracks.options.length; i++) {
if (objAvailableTracks.options[i].selected) {
objPlaylist.options.length = objPlaylist.options.length + 1;
objPlaylist.options[objPlaylist.options.length - 1].text = objAvailableTracks.options[i].text;
objPlaylist.options[objPlaylist.options.length - 1].value = objAvailableTracks.options[i].value;
objAvailableTracks.options[i] = null;
i--;
}
}
}
function removeTrack(id) {
eval('var objPlaylist = getForm(\'tracks\', \'regForm\').Playlist_' + id + ';');
for (var i = 0; i < objPlaylist.options.length; i++) {
if (objPlaylist.options[i].selected) {
objPlaylist.options[i] = null;
i--;
}
}
updateAvailableTracks(id);
}
function selectAll(num) {
for (var id = 0; id < num; id++) {
eval('var objPlaylist = getForm(\'tracks\', \'regForm\').Playlist_' + id + ';');
for (var i = 0; i < objPlaylist.options.length; i++)
objPlaylist.options[i].selected = true;
}
}
var numForm = 1;
function validateForm() {
var addString = '', alertMsg = '';
var retVal = true;
var objForm = getForm('tracks', 'regForm');
thanks, but this causes the javascript not to work anymore, try it and you'll see. it will not load items from the dropdown into the first multi select.
i'm sure your method is working but it causes the javascript to malfunction so i can't see the result.
i tried different ways of putting the [] in the javascript too but i never got it right..
eval('var objArtist = getForm(\'tracks\', \'regForm\').Artist_' + id + ';');
eval('var objAvailableTracks = getForm(\'tracks\', \'regForm\').AvailableTracks_' + id + ';');
eval('var objPlaylist = getForm(\'tracks\', \'regForm\').Playlist_' + id + '[];');
i tried other, crazy, stuff too, not as logical as the above. needless to say, tthe above did not solve my problem. let me know if it works on your side but i can't understand what i do wrong....