【问题标题】:How to send POST data with an <a> tag using a form如何使用表单发送带有 <a> 标记的 POST 数据
【发布时间】:2015-01-06 15:14:36
【问题描述】:

所以我有这样的东西

<li><a href="new/page">Something</li>
<li><a href="#">Something else</li>

我希望能够单击其中一项,然后发送当前 URL,以便我可以在新页面中获取它。我无法将当前 URL 存储在会话中,因为我将前往没有相同会话的不同位置。这就是为什么我认为我想要一些 POST 数据,这样我就可以将 URL 或位置连同它一起发送。我想保留一个&lt;a&gt; 标签,因为这是样式设置的方式。

【问题讨论】:

  • 您想将当前网址发送到您的新页面吗?
  • 您需要 javascript 来拦截对 &lt;a&gt; 的点击,然后将所有内容转换为帖子。但是是什么让你认为你需要一个 POST 呢?您可以在 url 中包含查询参数,例如&lt;a href="new/page?foo=bar"&gt;
  • 使用js防止默认并使用post方式发送
  • 如果您确实需要 POST,也可以使用 &lt;form&gt; 并从 &lt;a&gt; 的点击处理程序中调用 form.submit
  • 构造什么?这只是一个链接...

标签: javascript php html http-post


【解决方案1】:

试试:&lt;a href="new/page?variable=data"&gt;。当你准备好在另一个页面上提取变量时,你可以使用这样的东西:

var myData = getQueryVariable("variable");

if(myData){
  console.log(myData);//to verify it
}

function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("?");

  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
  console.log('Query Variable ' + variable + ' not found');
}

【讨论】:

  • 这行得通,我能够在新页面上获取变量。谢谢。
【解决方案2】:

来自 PHP 的 HTTP GET 解决方案:

<li><a href="new/page?from=<?php echo $PHP_SELF?>" Something</li>

也许您还可以依赖 http-referer 标题中的信息。

【讨论】:

  • $PHP_SELF 实际上什么也没得到。我用 $_SERVER['REQUEST_URI'];它奏效了
猜你喜欢
  • 2020-10-22
  • 2011-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 2011-10-09
相关资源
最近更新 更多