在URL中传递php变量

I'm having a problem with passing variables using the URL of my website.

Here's the code:

    function sort(form) {   
        var Page = "?";

        var iweek = form.listWeeks.SelectedIndex;
        var week = form.listWeeks.options[iweek].value;

        var month = form.listMonth.selectedIndex+1; 

        var iyear = form.listYear.selectedIndex;
        var year = form.listYear.options[iyear].value;  

        var URL = Page + "week=" + week + "&month=" + month + "&year=" + year;

        window.location = URL;  

        return false;
    }

When I click the submit button wich refers to this function, the url changes to:

http://localhost/test.php?listWeeks=1&listMonth=August&listYear=2010&Submit=Select

But I would like to change the url to:

http://localhost/test.php?week=1&month=8&year=2010

The strange part is that when I change the code to:

 function sort(form) {

        var Page = "?";

        //var iweek = form.listWeeks.SelectedIndex;
        //var week = form.listWeeks.options[iweek].value;

        var month = form.listMonth.selectedIndex+1; 

        var iyear = form.listYear.selectedIndex;
        var year = form.listYear.options[iyear].value;  

        var URL = Page + "month=" + month + "&year=" + year;

        window.location = URL;  

        return false;
    }

It works.. Could anyone please tell me what the problem might be?

Thanks!

You might need to use value attribute in each <option> tag. For example

<select name="listMonth">
  <option value="1">January</option>
  <option value="2">February</option>
  ...
</select>

You can also change <select name="listMonth"> to <select name="month">.

This should work as expected (UPDATE):

<form method="get" action="test.php">
   <select name="month">
     <option value="1">January</option>
     <option value="2">February</option>
     ...
   </select>
   <input type="submit" />
</form>

JavaScript code is not required then.

Something in the two lines of code you comment out is throwing an error. Why exactly that is is impossible to say without seeing more context (such as the form).

This is resulting in the JavaScript falling over and the form submitting as normal.

I'd deal with this by scrapping the JS entirely and removing the name attributes from the form controls that you don't want to appear in the submitted data.