href 超链接作为 POST



我想知道哪种方法是映射执行HTTP GET的<a href=...></a>超链接以执行HTTP POST(我想避免传递URL中的所有变量)?例如,下面的 2 hrefs。此外,我还想摆脱submit按钮并使用常规<a href=...></a>超链接。有什么建议吗?

<form action="test.php?action=update" method="post" id="cart">
  <table>
    <tr>
      <td>
        <a href="test.php?action=delete&id=<?php echo $id ?>" class="r">
          remove
        </a>
      </td>
      <td>
        <a href="test.php?action=add&id=<?php echo $id ?>" class="r">add</a>
      </td>
    </tr>
    <tr>
     ...
    </tr>
  </table>
  <div> <button type="submit">Update</button> </div>
</form>

我建议使用 jQuery.post 并单击。单击链接后,通过类似以下内容提交数据

$('.r').on('click', function() {
        $.post('test.php', {key:'value', key2:'value2'}, function(data) {
          //error check here
        });
    return false;
});

据我所知,您无法使用链接执行任何 POST 请求。您可以使用链接和 php 发出 GET 请求,作为禁用 javascript 的用户和启用 javascript 的用户的后备,取消使用 javascript 链接的默认行为,并在 AJAX 的帮助下使用 ajax 发出您的 POST 请求。

例如:

<a class="submit" href="hallo.html?hello=world&test=yes">Test</a>

和JS(我使用jquery)将是:

$('.submit').click(function(){
    var urlPairs = this.href.split('?')[1].split('&'),
        total = urlPairs.length,
        current = [],
        data = {};
    for(;total;) {
        current = urlPairs[--total].split('=');
        data[current[0]] = current[1];
    }
    $.post('test.php', data);
    return false;
});

你也可以写你的 POST 函数 其他 有关更多信息,请查看 jQuery post 函数文档

附言我伤了,如果你以任何方式使用FORM,你为什么不使用提交按钮,是因为CSS样式吗?您可以像任何其他元素一样设置它的样式(在某些浏览器中进行了一些调整)。

您可以将输入标签隐藏在表单中,以将其作为 POST 提交。

<td><a href="test.php?action=delete&id=<?php echo $id;?>" class="r">remove</a></td>
<td><a href="test.php?action=add&id=<?php echo $id;?>" class="r">add</a></td>

使用两种形式重写上述内容,具有<input type="hidden" name="id />和按钮<input type="button" name="delete" />等。。

如果您在操作脚本中运行 print_r($_POST)。您将获得按钮列表和隐藏字段的值。现在,您可以编写要运行的操作的条件。我在这里没有编写完整的代码,只是传递了这个想法。

编辑:请参阅以下示例。

     <form  method="post" id="cart">
        <table>
                <input type="hidden" name="id" value='some value' />
                <input type="submit" name="action" value="delete" />
                <input type="submit" name="action" value="add" />
            </tr>
            <tr>
                ...
            </tr>
        </table>
        <div><button type="submit">Update</button></div>
     </form>

    <?php print_r($_POST); ?>

最新更新