【发布时间】:2010-11-05 04:01:03
【问题描述】:
我想通过单击链接(用<a> 括起来)而不是常规表单的“提交”按钮来发布($_GET 和 $_POST)数据。首选语言:PHP
我在今天的很多网站上都看到了这一点, 通过单击看起来像超链接的按钮提交表单。 所以想知道怎么做。
提前致谢
【问题讨论】:
我想通过单击链接(用<a> 括起来)而不是常规表单的“提交”按钮来发布($_GET 和 $_POST)数据。首选语言:PHP
我在今天的很多网站上都看到了这一点, 通过单击看起来像超链接的按钮提交表单。 所以想知道怎么做。
提前致谢
【问题讨论】:
当心点击链接发布数据! 蜘蛛可能会跟随此链接并更改数据。
你可能想要这样的东西:
<a href="#" onclick="form.Submit();">submit</a>
【讨论】:
您可以使用Javascript提交表单。
<a href='document.myform.submit()'>Submit Button</a>
【讨论】:
你可以这样做:
<a href='myform.php?name=Bob&surname=Terrier'>Click here</a>
这会将name 和surname 作为GET 变量提交到表单。
但请注意任何修改数据的表单,因为搜索引擎和蜘蛛会遍历它们不遍历表单的链接。
【讨论】:
表单旨在通过按钮提交。您可以使用 JavaScript 使链接提交它,但是当 JS 不可用时这会中断。即使 JavaScript 可用,使用链接也将使用在屏幕阅读器处于“表单模式”时不会显示的控件,从而使屏幕阅读器用户无法通过任何明显的方式提交表单。
CSS 是一种更安全的替代方案(请参阅http://tom.me.uk/scripting/submit.html)。
【讨论】:
This post 在 Ajaxian 上可能会有所帮助。它链接到一篇非常深入的博客文章,向您展示如何将 CSS 应用于按钮,使它们看起来像链接。
与使用正确链接相比,这里的优势在于“假链接”实际上是一个按钮,因此它的行为与按钮完全一样,只是看起来像一个链接。蜘蛛不会跟随它,屏幕阅读器会以不同的方式对待它,就发布 http 帖子而言,这是更“正确”的做法。
【讨论】:
从其他答案中可以看出,如果要从带有链接的表单提交用户数据,则必须使用 JavaScript。这意味着您排除了 JavaScript 关闭、不可用或与您的代码不兼容的任何人。另一方面,您可以尝试使用 CSS 设置按钮样式,使其看起来像一个链接。
【讨论】: