HTML表单 - 当URL包含index.aspx时,输入类型提交问题与操作= URL

时间:2009-12-29 22:44:51

标签: html forms url parameters action

我有一个HTML表单,在“?”之后截断action参数mark - 这不是我想要的行为。

以下是一段代表性HTML代码段:

<form action="http://spufalcons.com/index.aspx?tab=gymnastics&path=gym">
    <input type="submit" value="SPU Gymnastics"/>
</form>

在这种情况下,提交按钮会将您带到“http://www.spufalcons.com/index.aspx”页面,实际上忽略了“?tab = gymnastics&amp; path = gym”参数。似乎action = URL中引用的所有HTML和PHP页面都按预期工作。这种行为在所有主流浏览器(IE,FF,Safari,Chrome,Opera)中都是一致的。

之前有没有人见过这个问题?或者可以建议与我的“纯”CSS / HTML / PHP Web开发方法一致的替代和/或解决方法?我已经尝试用HTML实体值替换特殊字符而没有任何影响。我真的不想使用Javascript或按钮PNG或图像映射来放弃我的CSS样式的提交按钮。

环境:

  • Web服务器:Apache 2.2.14
  • PHP:5.2.10
  • 操作系统:Mac OS X 10.5.8
  • HTML文档信息:
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

TIA - 遄

4 个答案:

答案 0 :(得分:28)

将查询参数放在隐藏的输入字段中:

<form action="http://spufalcons.com/index.aspx">
    <input type="hidden" name="tab" value="gymnastics" />
    <input type="hidden" name="path" value="gym" />
    <input type="submit" value="SPU Gymnastics"/>
</form>

答案 1 :(得分:4)

使用method = POST然后它将传递key&amp; value。

答案 2 :(得分:1)

这似乎是我的“首选”解决方案:

<form action="www.spufalcons.com/index.aspx?tab=gymnastics&path=gym" method="post">  <div>
<input type="submit" value="Gymnastics"></div>

对于演示文稿格式感到抱歉 - 我仍在尝试学习如何使用此论坛....

我确实有一个后续问题。在查看我的MySQL数据库时,似乎有~30%的URL需要使用这种post / div包装器方法。这使得约70%的人无法接受“post”属性。例如:

<form action="http://www.google.com" method="post">
  <div>
    <input type="submit" value="Google"/>
  </div></form>

不起作用。您是否有关于如何最好地处理这种上/下条件测试的建议。我猜想用PHP来评估“?”的存在。 URL中的字符可能是我最好的方法,虽然我不确定如何构建HTML表单来实现这一点。

谢谢你!

答案 3 :(得分:0)

我将CSS样式应用于锚定的HREF属性,完全模仿我需要的按钮行为(悬停,活动,背景颜色等等)。 HTML标记更简单,a-n-d消除了与使用基于表单的方法相关的get / post复杂性。

<a class="GYM" href="http://www.spufalcons.com/index.aspx?tab=gymnastics&path=gym">Gymnastics</a>