使用HTML <a href...=""></a>访问表单输入

时间:2013-04-27 07:29:21

标签: php javascript jquery html

我有一个HTML表单,用PHP查询以搜索动物:animals.php

一切都很好但是我想知道我是否也可以使用HTML锚标签访问表单。所以当你点击:

<a href="">giraffe</a>

它会通过animals.php在数据库中查询长颈鹿。

 <form  method="post" action="s.php?go"  id="searchform">
   <input class="search" type="text" name="heyworld">
   <input class="button" type="submit" name="submit" value="Search">
 </form>

我的PHP查询的工作原理如下:

if(isset($_POST['submit']) && isset($_GET['go']) && preg_match("/^[  a-zA-Z0-9#@]+/", $_POST['msg'])){
//query the db
//echo the results

1 个答案:

答案 0 :(得分:3)

(编辑)首先:您的PHP不安全:请花几分钟时间阅读有关SQL注入的内容:How can I prevent SQL injection in PHP?

由于您需要将数据发布到脚本,因此简单的HREF将无法执行此任务。但是,您可以:

制作另一个小的,不可见的表单包装器,其中包含一个不可见的文本字段,其中“giraffe”为默认值,并将提交作为文本

<form  method="post" action="s.php?go"  id="searchform">    
    <input class="search" type="hidden" name="heyworld" value="giraffee" />   
    <input class="button" type="submit" name="giraffee" value="Search" />  
</form>

现在,对于实际的HREF,您有两个选项:CSS使按钮与链接相同,或者使其成为链接,这将使用form.submit()提交(隐藏)表单

这是一个解释这个的链接: How to HTTP POST from a link without JS

(编辑)如果你想用GET来做,你只需要在脚本中切换你从中获取数据的全局(注意这是STILL UNSAFE CODE,但是我在几年内没有编写PHP所以我最好将辅导留给更有资格的人,并修改你的HTML表格以通过GET提交数据:

if(isset($_GET['submit']) && isset($_GET['go']) && preg_match("/^[  a-zA-Z0-9#@]+/", $_GET['msg']))

现在您的HREF可以转到s.php?go&submit&msg=giraffee - 请注意,对于您的脚本编制方式,您需要发送提交(空字符串是可以的,因为您只检查isset()或类似的东西:)