如何捕获表单元素并在post url中动态使用?

时间:2009-09-09 14:12:46

标签: php javascript html

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

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

3 个答案:

答案 0 :(得分:1)

如果您想将表单中的值添加到网址中,请将method attribute设置为get

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

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

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

有关详细信息,请阅读this page。摘录:

  

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

答案 1 :(得分:0)

使用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>

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

答案 2 :(得分:0)

尝试使用:

<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>