BjornBogers
BjornBogers

Reputation: 108

Passing php variables in URL

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!

Upvotes: 0

Views: 188

Answers (2)

Quentin
Quentin

Reputation: 943108

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.

Upvotes: 0

Voitcus
Voitcus

Reputation: 4446

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.

Upvotes: 1

Related Questions