0

Web サイトの URL を使用して変数を渡す際に問題が発生しています。

コードは次のとおりです。

    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;
    }

この関数を参照する送信ボタンをクリックすると、URL が次のように変わります。

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

しかし、URLを次のように変更したいと思います:

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

奇妙な部分は、コードを次のように変更したときです。

 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;
    }

それは動作します..誰か問題が何であるか教えてください。

ありがとう!

4

2 に答える 2

1

各タグvalueで属性を使用する必要がある場合があります。<option>例えば

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

<select name="listMonth">に変更することもできます<select name="month">

これは期待どおりに動作するはずです ( 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 コードは必要ありません。

于 2013-08-01T11:50:38.357 に答える
0

コメントアウトした 2 行のコードでエラーがスローされています。詳細なコンテキスト (フォームなど) を見ないと、なぜそれが正確なのかを言うことは不可能です。

これにより、JavaScript が失敗し、フォームが通常どおり送信されます。

nameJS を完全に廃棄し、送信されたデータに表示したくない属性をフォーム コントロールから削除することで、これに対処します。

于 2013-08-01T12:14:23.697 に答える