使用表单按钮提交 GET 值


Use form button to submit GET value

我有以下代码来提交GET值:

<form method="GET">
 <input type="hidden" name="price" value="ASC" />
  <input type="submit" value="Price Low to High" />
</form>
<form method="GET">
 <input type="hidden" name="price" value="DESC" />
  <input type="submit" value="Price High to Low" />
</form>
<form method="GET">
 <input type="hidden" name="price" value="" />
  <input type="submit" value="Default" />
</form>

哪个工作正常。所以我不会用三种形式重复自己,有没有办法让我有一个表格,并定义按钮提交的 GET 值?他们仍然需要为用户提供相同的信息,例如提交DESC按钮需要显示为Price High to Low

使用以下代码:

<form method="GET">
  <input type="submit"  name="price" value="ASC">Price Low to High</input>
  <input type="submit" name="price" value="DESC"  >Price High to Low</input>
 <input type="submit" name="price" value="" >Default</input>
</form>

如果设计上有三个按钮不是强制性的,那么我建议,为什么不只使用select让用户决定他想要什么(因为大多数网站已经这样做了)

<form method="GET">
 <select id="price" name="price">
   <option value="">Default</option>
   <option value="ASC">Price Low to High</option>
   <option value="DESC">Price High to Low</option>
 </select>
 <input type="submit" value="Price Low to High" />
</form>

演示

如果需要三个按钮,则可以执行以下操作之一(但不限于)。

  1. 使用纯链接(<a>锚标签),是的,您没看错,因为表单只是使用 $_GET 方法提交,最终数据将位于 URL 内,那么为什么不首先使用"按钮"的href属性将其放在那里呢?

  2. 使用@Aref Anafgeh建议的解决方案,并有三个提交按钮,每个按钮具有不同的值,然后让html处理发送到服务器的值。

  3. 使用 JavaScript 并进行 ajax 调用,这几乎允许你处理请求中发送和未发送的内容。

试试这段代码。

<!DOCTYPE html>
<html>
    <body>
<?php
if ($_SERVER["REQUEST_METHOD"] == "GET") 
    {
       echo "Form Submited by ".$_GET['submitbutton']." Button";
    } 
?>      
        <form method="GET" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
            <input type="hidden" name="price" value="ASC" />
            <input type="submit" value="Price Low to High" name="submitbutton"/>
        </form>
        <form method="GET" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
            <input type="hidden" name="price" value="DESC" />
            <input type="submit" value="Price High to Low" name="submitbutton"/>
        </form>
        <form method="GET" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
            <input type="hidden" name="price" value="" />
            <input type="submit" value="Default" name="submitbutton"/>
        </form>
        <script>
        </script>
    </body>
</html>
<form method="get">
<select name="sort">
  <option value="asc">Ascending</option>
  <option value="desc">Descending</option>
  <option value="default">Default</option>
</select>
<button name="price">Sort price ascending</button>
</form>

剪 断

<?php if ($_GET['sort'] == "asc") {
// Do something
} elseif ($_GET['sort'] == "desc") {
// Do something else 
}
// etc
?>

指向 http://url/?price=XXX 的超链接也可以正常工作,因为您使用的是GET