-1

我有一个带有选择输入的表单。它的方法是GET。

<form method="get" action="index.php">
<select name="select[]" multiple>
  <option value="0">Option1</option>
  <option value="1">Option2</option>
  <option value="2">Option3</option>
  <option value="3">Option4</option>
  <option value="4">Option5</option>
</select>
</form>

如果我选择选项 2 和 4,则 url 将如下所示:mydomain.com/index.php?select[]=2&select[]=4

我希望它看起来像(最好没有方括号)

mydomain.com/index.php?select=2+4

我怀疑我需要一个客户端解决方案,但我不知道任何 javascript。或者首先加载一个改变值的页面,然后重定向到一个带有标题(位置:'')的新页面?

4

1 回答 1

1

似乎您的意图是对值求和并返回 (6) 而不是 (4+2)。下面的代码片段两者兼而有之,使用您想要的一个并废弃另一个。

<form method="get" action="">
    <select multiple id="selector">
        <option value="0">Option1</option>
        <option value="1">Option2</option>
        <option value="2">Option3</option>
        <option value="3">Option4</option>
        <option value="4">Option5</option>
    </select>
    <input type=hidden name=select1 value=0 id=hiddenSelect1>
    <input type=hidden name=select2 value=0 id=hiddenSelect2>
    <input type=button onclick=showw();>
    <input type=submit onclick="return sumValues();">
</form>


<script>
    function sumValues()
    {
        var values = $('#selector').val();
        if (values === null)
        {
            $('#hiddenSelect1').val("");
            $('#hiddenSelect2').val(0);
        }
        else
        {
            var valstring = values.join("+");
    //string (1+2+...)
            $('#hiddenSelect1').val(valstring);
//actually sum them
            var sum = 0;
            values = valstring.split("+");
            for (var i = 0, len = values.length; i < len; i++)
            {
                sum += parseFloat(values[i]);
            }
            $('#hiddenSelect2').val(sum);
        }
        return true;
    }

</script>
于 2013-10-20T22:24:18.340 回答