This page works in IE but not in Netscape.  Something to do with some of the
objects it uses!  I can't be bothered to change it, but if you want you can!

Paul

PS Just copy and paste the whole code somewhere on your web server.  It
passes a hidden field with a comma-delimited list of all the values called
"hidden_list".  This page uses CF to output whatever list is passed to it.

--------------page--------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
        <title>Untitled</title>
</head>

<body>

<script language="JavaScript">
var values = new Array('Paul', 'Chris', 'Nick', 'Kevin');

function changeOrder(action) {
    var form = document.forms[0];
    check = String(form.order.value);
    do_update = "yes";
    if (check.match('^\s*$')) {
        alert('You have not selected anything!');
        do_update = "no";
    }
    order_value = form.order.value;
    if (action == 'up' && do_update == 'yes') {
        //alert('up');
        if ( order_value == 0) {
            alert('This value cannot go up any further');
        }
        else {
            // find values of the array
            swap_value1 = values[order_value];
            new_order_value = parseInt(order_value) - 1;
            swap_value2 = values[new_order_value];
            //alert('order value: ' + order_value + ' new order value: ' +
new_order_value);
            //alert('1: ' + swap_value1 + ' 2: ' + swap_value2);
            // swap them over
            values[order_value] = swap_value2;
            values[new_order_value] = swap_value1;
            // repopulate the array
            for(i = 0; i < values.length; i++) {
                form.order.options[i].value = values[i];
                //alert('form.order.options[' + i + ']: ' + values[i]);
            }
            refreshSelectBox();
        }
    }
    else {
        //alert('down');
        if ( order_value == ( values.length - 1 ) ) {
            alert('This value cannot go down any further');
        }
        else {
            // find values of the array
            swap_value1 = values[order_value];
            new_order_value = parseInt(order_value) + 1;
            swap_value2 = values[new_order_value];
            //alert('order value: ' + order_value + ' new order value: ' +
new_order_value);
            //alert('1: ' + swap_value1 + ' 2: ' + swap_value2);
            // swap them over
            values[order_value] = swap_value2;
            values[new_order_value] = swap_value1;
            // repopulate the array
            for(i = 0; i < values.length; i++) {
                form.order.options[i].value = values[i];
                //alert('form.order.options[' + i + ']: ' + values[i]);
            }
            refreshSelectBox();
        }
    }
    writeList();
    // use this if you want to refresh the page!
}

function writeList() {
    var form = document.forms[0];
    form.hidden_list.value = "";
    for(i = 0; i < values.length; i++) {
        temp = form.hidden_list.value;
        if ( i != 0 ) {
            form.hidden_list.value = temp + ',' + values[i];
        } else {
            form.hidden_list.value = values[i];
        }
        //alert(form.hidden_list.value);
    }
}

function refreshSelectBox(){
    // values array holds all the relevant data
    // delete the current select box array
    var form = document.forms[0];
    for(i = 0; i < values.length; i++) {
        // delete the first in the array because we are deleting them one by
one (ie you can't delete the third one if there are only two there)!
        // alert(form.order.options[0].value);
        form.order.options[0] = null;
    }
    for(i = 0; i < values.length; i++) {
        newOption = new Option(values[i], i);
        form.order.options[i] = newOption;
    }
}
</script>

<cfif IsDefined("form.hidden_list")>
    List Passed To Form: <Cfoutput>#form.hidden_list#</cfoutput><br><br>
</cfif>

<form method="post" onsubmit="writeList();">
<script language="JavaScript">
    document.write('<select name="order" size="' + values.length + '">');
    refreshSelectBox();
</script>
</select>
<!--- this is to output the array as a list for the next page to take --->
<input type="hidden" name="hidden_list" value="">
<input type="Button" value="Up" onclick="changeOrder('up');">
<input type="Button" value="Down" onclick="changeOrder('down');">
<input type="submit" value="Finished Ordering">
</form>

</body>
</html>

--------------page--------------

> -----Original Message-----
> From: Sean Blenkhorn [mailto:[EMAIL PROTECTED]]
> Sent: 31 October 2000 15:33
> To: Fusebox
> Subject: RE: Multiple Select Box
>
>
>
> I think he means to have a select box with a size of 5 and have any number
> of items in it.... but have the ability to choose one item... and move the
> item up or down in priority.... as if you are ordering sections
> of a portal
> site... or ordering the order of jobs in a queue.
>
> I don't have the JS to do this.... but it seems easy enough to write from
> scratch.
>
> Sean
>
>
> -----Original Message-----
> From: David Huyck [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, October 31, 2000 10:03 AM
> To: Fusebox
> Subject: Re: Multiple Select Box
>
>
> Neil--
>
> > Anyone out there got a script which reorders a multiline text menu?  for
> > instance I have 4 items in it :
> >
> > 1
> > 2
> > 3
> > 4
> >
> > I only want 1 select menu visible with an up button and a down button,
> when
> > I click the up button it  push content up when pusing down - it
> goes down
>
> Do you just mean something like:
> <select name="pickIt" size="1"><options...></select>
>
> I'm not sure what you mean by reordering the menu...?
>
> David Huyck
> [EMAIL PROTECTED]
>
> ------------------------------------------------------------------
> ----------
> --
> To Unsubscribe visit
> http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/fusebox or
> send a message to [EMAIL PROTECTED] with 'unsubscribe' in
> the body.
>
> ------------------------------------------------------------------
> ------------
> To Unsubscribe visit
> http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/fu
sebox or send a message to [EMAIL PROTECTED] with
'unsubscribe' in the body.


------------------------------------------------------------------------------
To Unsubscribe visit 
http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/fusebox or send a 
message to [EMAIL PROTECTED] with 'unsubscribe' in the body.

Reply via email to