2009-12-29 75 views
15

URL我有一个HTML表单,截断操作参数后“?”马克 - 这不是我期待的行为。HTML表单 - 输入类型提交问题与操作=当URL包含index.aspx

下面是一个典型的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”页面,有效地忽略参数“选项卡=体操&路径=健身房?”。看起来action = URL中引用的所有HTML和PHP页面都按预期工作。这种行为在所有主流浏览器(IE,FF,Safari,Chrome,Opera)中都是一致的。

有没有人见过这个问题?或者可以建议与我的“纯粹”CSS/HTML/PHP网站开发方法一致的替代方案和/或解决方法?我试图用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 - 特伦特

+1

听起来很奇怪。您确定表单实际发布到错误的URL,还是有可能POST是正确的,但.ASPX页面是否重定向? –

+0

如果您使用的是Apache和需要解决方法,[有一个在另一个计算器答案] [1] [1]:http://stackoverflow.com/questions/1116019/submitting-a-get- form-with-query-string-params-and-hidden-params-disappear /#16415773 – wanis

回答

26

把查询参数在隐藏输入字段:

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

如果你想让“tab = gymnastics&path = gym”在urlbar中显示,请在你的form标签中添加method =“GET”好。 – Annie

+2

@Annie:'method'属性不是必需的;暗示了'method =“get”'。如果你的“目录索引”是index.aspx(在apache配置上): – Gumbo

+0

:可以不使用URL发布。

blah blah
dsgdfg

1

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

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

抱歉的演示文稿格式 - 我仍然在试着学习如何使用你se这个论坛....

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

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

不起作用。你有建议如何最好地处理这个获得/发布条件测试。关于我的头顶,我猜测使用PHP来评估“?”的存在URL中的字符可能是我最好的方法,但我不确定如何构建HTML表单来完成此操作。

谢谢!

0

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

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

使用方法= POST然后它会传递密钥&的值。