我有一个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样式的提交按钮。
环境:
<!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 - 遄
答案 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>