this.form.submit()将值传递给url

时间:2013-05-10 06:22:59

标签: forms methods get action

我有这个脚本。

<form method="get">
  <select name="report" onchange="this.form.submit()">
    <option value="data1">data1</option>
    <option value="data2">data2</option>
  </select>
</form>

我想传递所选值并将值添加到当前网址(请参阅下面的网址)。

test.php?link=partners&projectid=value&clientid=value
像这样的东西;

 test.php?link=partners&projectid=value&clientid=value&type=data1

3 个答案:

答案 0 :(得分:1)

像这样更改form

<form method="get" action="test.php">
  <select name="report" onchange="this.form.submit()">
    <option value="data1">data1</option>
    <option value="data2">data2</option>
  </select>
  <input type="hidden" name="link" value="partners">
  <input type="hidden" name="projectid" value="value">
  <input type="hidden" name="clientid" value="value">
</form>

您必须使用hidden类型输入表单字段。

注意:您可能需要将name select标记从报告更改为类型,如问题中所述。

答案 1 :(得分:1)

URL中的参数仅从表单字段构造。因此,根据您的要求,除了代码之外,您还可以为hiddenprojectId添加clientId字段,添加服务器端代码以设置此字段的值(如果是动态检索的话), 这就是其余的工作正常。

答案 2 :(得分:0)

您可能想要创建一个javascript函数来处理这个问题,接近以下内容:

<script type="text/javascript">
    function somefunction() {
        var xmlhttp;
        var data1 = document.forms.frm1.report.value;
        if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else { // code for IE6, IE5
            xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
        }

        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                // do something
            }
        };

        xmlhttp.open('GET', 'test.php?link=partners&projectid=value&clientid=value&type=' + data1, true);
        xmlhttp.send();
    }       
</script>

然后将您的选择更改为以下内容:

<select name="report" onchange="somefunction()">

最好将其他值放在隐藏字段中。