【问题标题】:How to POST a href link with isset如何使用 isset 发布 href 链接
【发布时间】:2019-04-14 17:21:15
【问题描述】:

请帮帮我,我想做一个使用锚标签的发布方法。 这是示例代码:

<form action="essay2.php" id="quiz" name="quiz" method="post">
  <ul>
    <li>
      <a href="essay2.php" name="submit-test">2</a>
    </li>
  </ul>
  <input type="text" name="test1">
</form>

还有 PHP 代码:

<?php
session_start();

if (isset($_POST['submit-test'])) {
    $_SESSION['test1'] = $_POST['test1'];
    header("Location: essay2.php"]);
}
?>

【问题讨论】:

  • 旁注:回显后的标头重定向不起作用。
  • 他们编辑了@Jeff,Phil 刚刚进行了回滚。我想知道这还要经过多少次编辑lol!现在已经有 6 次了。
  • 锚标签 &lt;a&gt; 不会发送任何带有表单的内容。所以$_POST['submit-test'] 永远不会被设置。再一次(正如 Funk 所说):这个的用例是什么?
  • 您实际上可以设置&lt;button type="submit" name="submit-test"&gt;2&lt;/button&gt; 元素的样式,使其看起来与纯文本链接完全一样。有关示例,请参见 Bootstrap 的 link button。如果这纯粹是为了 UI,我会尝试一下。否则,您需要使用一些 JS 来让锚提交表单
  • 那是因为您的表单没有id 属性值quiz。它也不包括submit-test 参数

标签: php session post href isset


【解决方案1】:

详细说明我上面的评论...

您实际上可以设置&lt;button type="submit" name="submit-test"&gt;2&lt;/button&gt; 元素的样式,使其看起来与纯文本链接完全一样

考虑这种方法

button[name="submit-test"] {
  background: transparent;
  border: 0 none;
  color: blue;
  text-decoration: underline;
  font: inherit;
  cursor: pointer;
}
<form action="essay2.php" id="quiz" name="quiz" method="post">
  <ul>
    <li>
      <button name="submit-test" type="submit">2</button>
    </li>
  </ul>
  <input type="text" name="test1">
</form>

点击“2”

时会发送以下结果

【讨论】:

    【解决方案2】:

    您可以在链接上使用带有 onclick 方法的 javascript。

    <a href="#" onclick="document.getElementById('myform').submit();">click to send</a>
    

    您还需要在表单标签中添加一个 id(在本例中为 id="myform")。

    我会这样做:

    <form action="essay2.php" id="quiz" name="quiz" method="post">
      <ul>
        <li>
          <a href="#" onclick="document.getElementById('quiz').submit();">2</a>          
        </li>
      </ul>
      <input type="text" name="test1">
      <input type="hidden" name="submit-test">
    </form>
    

    【讨论】:

    • 这个有一个问题...这不会发送OP的PHP所依赖的submit-test参数
    • 谢谢,但我想使用 POST 方法将 $_POST['test1'] 传递给 $_SESSION['test1']。
    • @CarloMontemayor 这肯定会这样做
    • 不是真的,因为它正在测试索引是否存在 submit-test 而不是 test1,这没有任何意义。这也必须解决。
    • 如果要传递 submit-test 参数,只需在表单中添加一个名为 submit-test 的隐藏输入
    【解决方案3】:

    像这样使用里面的标签:

    <button type="submit" name="submit-test"><a href="essay2.php"> 2  </button>
    

    【讨论】:

      猜你喜欢
      • 2016-06-28
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2015-08-18
      • 2020-08-31
      • 2020-03-30
      • 1970-01-01
      • 2010-09-30
      相关资源
      最近更新 更多