Php 如何返回URL并使用onchange提交表单

Php 如何返回URL并使用onchange提交表单,php,javascript,html,Php,Javascript,Html,首先,在网站上可能会有一个类似的问题被回答,但在仔细考虑了哪些解决方案和问题后,我仍然困惑于该怎么做 我希望返回一个URL,并将我的用户发布到从选择列表中选择的URL页面 目前,它使用正常的提交按钮工作,使用以下代码 <form id="formurl" name="formurl" method="post" action="" onSubmit="return getURL(this.url.value)"> <!-- begin postcode

首先,在网站上可能会有一个类似的问题被回答,但在仔细考虑了哪些解决方案和问题后,我仍然困惑于该怎么做

我希望返回一个URL,并将我的用户发布到从选择列表中选择的URL页面

目前,它使用正常的提交按钮工作,使用以下代码

<form id="formurl" name="formurl" method="post" action="" onSubmit="return getURL(this.url.value)">
            <!-- begin postcode list -->
            <select size="1" name="url" id="posctode_srch" onchange="this.form.submit()">
              <option value="e1-office-space/">E1</option>
              <option value="e7-office-space/">E7</option>
              <option value="e10-office-space/">E10</option>
              <option value="e11-office-space/">E11</option>
              <option value="e14-office-space/">E14</option>
              <option value="e15-office-space/">E15</option>
              <option value="e16-office-space/">E16</option>
              <option value="e17-office-space/">E17</option>
              <option value="ec1-office-space/">EC1</option>
              <option value="ec2-office-space/">EC2</option>
              <option value="ec3-office-space/">EC3</option>
              <option value="ec4-office-space/">EC4</option>
            </select>

            <input type="image" src="images/graphics/new/btn_go.png" class="go_btn" width="119" border="0" value="submit" onclick="_gaq.push(['_trackEvent', 'Contact', 'AreaSearchForm',,, false]);" alt="Area search submit" />

          </form>

E1
E7
E10
E11
E14
E15
E16
E17
EC1
EC2
EC3
EC4
我希望使用post,但我正在用get测试它,看看在选择选项时会产生什么结果。当表单设置为get时,我看到了
?url=e7 office space%2F
,那么我是否可以安全地假设它在某种程度上正常工作,但输出中缺少了一些内容,仅获取选项的值,而没有其他内容

对于这类东西,我猜这是一个php/html问题,因为它的功能是存在的,它只是一个被误用的元素,所以如果有人能帮我看到哪里出了问题,我会非常感激


谢谢你有三件事-

  • 设置url
  • 设置谷歌的东西
  • 如果未在提交事件中提交表单,则提交表单
  • 在下面的代码中,如果您只能依赖javascript,则可以省略图像

    使用

    
    请选择
    E1
    E7
    E10
    E11
    E14
    E15
    E16
    E17
    EC1
    EC2
    EC3
    EC4
    
    getURL做什么?在提交图像中添加onclick也是一种非常糟糕的做法。首先,
    onSubmit
    应该是
    onSubmit
    (区分大小写),其次,您正在寻找类似于
    onSubmit=“this.action=getUrl(…);return true;”“
    onSubmit在某些doctype中只是强制小写。这是一个HMTL属性。不要使用带有
    onclick
    的image来提交表单,因为当您将光标悬停在图像上时,光标不会改变,因此用户可能会认为,当您单击该图像时不会发生任何动作,反过来也不会单击链接,除非图像上显示“单击我”。最好将该图像放入
    a
    按钮
    标记中,并将addonclick事件添加到该元素中。最近,在CSS3中,
    cursor
    属性以及
    :hover
    psuedo类可帮助您更改光标,但许多浏览器不支持它。它是一个提交图像,因此它将有一个手动光标或anks mplungjan,这个代码在您的示例中运行,但在实现它时,我仍然没有从onchange获得任何功能,因此它必须是其他东西阻止它。我将继续关注正在发生的事情,但我不能用控制台中的工作示例look否定您的正确答案。也许有什么地方出了差错。另请注意,我添加了一个“请选择”以允许选择e1。我想我可能已经找到了问题所在,再次感谢您的帮助,我看到了您使用“请选择”所做的一切,谢谢。
    window.onload=function() {
      document.getElementById("formurl").onsubmit=function() {
          var val = this.url.value;
          if (val=="") {
             alert("Please select a value");
             return false; 
          }
          this.action="http://bing.com/search?q="+val;
          _gaq.push(['_trackEvent', 'Contact', 'AreaSearchForm',,, false]);
      }
      document.getElementById("posctode_srch").onchange=function() {
        var val = this.value;
        if (val=="") return;
        this.form.onsubmit(); // not 100% sure but this should not trigger twice
        this.form.submit();   // since this is not triggering onsubmit
      }
    }
    
    <form id="formurl" name="formurl" method="post" action="">
                 <!-- begin postcode list -->
                <select size="1" name="url" id="posctode_srch">
                  <option value="">Please select</option>
                  <option value="e1-office-space/">E1</option>
                  <option value="e7-office-space/">E7</option>
                  <option value="e10-office-space/">E10</option>
                  <option value="e11-office-space/">E11</option>
                  <option value="e14-office-space/">E14</option>
                  <option value="e15-office-space/">E15</option>
                  <option value="e16-office-space/">E16</option>
                  <option value="e17-office-space/">E17</option>
                  <option value="ec1-office-space/">EC1</option>
                  <option value="ec2-office-space/">EC2</option>
                  <option value="ec3-office-space/">EC3</option>
                  <option value="ec4-office-space/">EC4</option>
                </select>
                <input type="image" src="images/graphics/new/btn_go.png" 
                class="go_btn" width="119" border="0" value="submit" 
                alt="Area search submit" />
      </form>