【问题标题】:How to capture a form element and use dynamically in the post url?如何捕获表单元素并在帖子网址中动态使用?
【发布时间】:2009-09-09 14:12:45
【问题描述】:

我正在尝试构建一个表单,该表单提交一个包含从 Google 地图传递过来的 lon/lat 的 URL。我已经设法得到它,因此 lon/lat 被传递到表单中的输入字段中,我将如何在帖子 URL 中动态使用这些值,即:

action="search.asp?[lon][lat]

【问题讨论】:

  • 我应该添加它位于 PHP 页面上,而不是 asp 页面上。

标签: php javascript html


【解决方案1】:

如果要将表单中的值获取到 URL 中,请将 method attribute 设置为 get

<form method="search.asp" action="get">

。这会将表单的lonlat 字段的值放在URL 中。示例:

search.asp?lat=[lat value]&lon=[lon value]

如需了解更多信息,请阅读this page。摘录:

如果表单的处理是 幂等的(即它没有持久的 对状态的可观察到的影响 世界),那么表单方法应该是 得到。许多数据库搜索没有 可见的副作用,使理想 查询表单的应用。

【讨论】:

    【解决方案2】:

    使用 javascript 您可以更改表单的 action 属性。所以,创建一个表单..

    <form name="myForm">
      <input type="hidden" name="lon" value="123" />
      <input type="hidden" name="lat" value="321" />
      ...
      <button onclick="setAction();">Submit</button>
    </form>
    

    然后在页面头部添加setAction函数..

    <script type="text/javascript">
      function setAction()
      {
        var lon = document.myForm.lon.value;
        var lat = document.myForm.lat.value;
    
        document.myForm.action = "search.php?["+lat+"]["+lon+"]"';
        document.myForm.submit();
      }
    </script>
    

    希望这会有所帮助,这就是我过去的做法!

    【讨论】:

    • 非常感谢 - 这是有道理的,我将看看如何使用它。
    【解决方案3】:

    尝试使用:

    <form action="search.php" method="get">
     <input type="hidden" name="lon" value="<?php echo $lon_fromGoogleMaps; ?>" />
     <input type="hidden" name="lat" value="<?php echo $lat_fromGoogleMaps; ?>" />
     <!-- The Rest of your Form... -->
     <input type="submit" value="Submit!" />
    </form>
    

    或者,如果您想将表单用作帖子:

    <form action="search.php?lon=<?php echo $lon_fromGoogleMaps; ?>&amp;lat=<?php echo $lat_fromGoogleMaps; ?>" method="post">
     <!-- The Rest of your Form... -->
     <input type="submit" value="Submit!" />
    </form>
    

    我看到您也将此标记为 Javascript,并且由于 Google 地图严重依赖 Javascript,您可能将 Lon 和 Lat 作为 Javascript 变量传递...

    <script type="text/javascript">
     // Obviously, execute this code after the DOM has loaded...
     var formAction = document.searchForm.action;
     formAction = formAction + '?lon=' + lon_fromGoogleMaps + '&amp;lat=' + lat_fromGoogleMaps;
     document.searchForm.action = formAction;
    </script>
    <form action="search.php" method="post" name="searchForm">
     <!-- The Rest of your Form... -->
     <input type="submit" value="Submit!" />
    </form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多