【问题标题】:this.form.submit() pass the value to the urlthis.form.submit() 将值传递给 url
【发布时间】:2013-05-10 06:22:59
【问题描述】:

我有这个脚本。

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

我想传递选中的值并将该值添加到当前 url(见下面的 url)。

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

类似的东西;

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

【问题讨论】:

    标签: forms methods get action


    【解决方案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 类型的输入表单字段。

    注意:您可能需要将 selectname 标记从 report 更改为 type,如您的问题中所述。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        您可能想要创建一个 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()">
        

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

        【讨论】:

          猜你喜欢
          • 2011-09-23
          • 2014-05-11
          • 1970-01-01
          • 2012-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多