1

如何通过单击链接从一个页面到另一个页面 $_POST 信息?没有表单或提交框,只要最终用户点击一个链接,它就会在打开的链接中发布相关信息。

伪代码,但是:

//On first page
<a href="./page.php" onclick="post" value="var">Click me!</a>
...
//On the page the above links to
$variable = $_POST["var"];

我考虑的是以下内容,虽然不那么漂亮,但有效。我想要它,所以它是一个帖子而不是一个获取。

//On first page
<a href="./page.php?var=<?php echo $variable; ?>">Click me!</a>
...
//On second page
$variable = $_GET["var"];
4

7 回答 7

12

试试这个 :

<a href="link.php" class="post">submit content using link</a>

 <script type="text/javascript">
            jQuery(document).ready(function($){
                $(".post").on("click",function(){
                    $.ajax({
                        url: "http://www.yourwebsite.com/page.php",
                        type: "POST",
                        data: { name: "John", location: "Boston" },
                        success: function(response){
                              //do action  
                        },
                        error: function(){
                              // do action
                        }
                    });
                });
            });
        </script>

参考链接

于 2013-01-03T05:53:43.153 回答
4

不知道你为什么不这样做:

//在第一页

<a href="./page.php?var=value">Click me!</a>

... //在上面链接的页面上

$variable = $_GET['var'];

更新:

根据您的上述评论:

GET 显示 URL 中的信息,而 POST 则不显示。我不希望最终用户只使用他们想要的任何值来编辑 URL。@popnoodles,当用户单击超链接时,它将指向一个新页面。– 里斯塔

出于安全原因,您尝试这样做,因为这两种方法都不是使用 GET 的好方法,或者 AJAX都不安全,因为两者都可以被篡改。您需要重新考虑要保护的内容以及如何检查提交的数据是否有效。

于 2013-01-03T05:26:29.737 回答
3

在 GET 和 POST 之间进行选择很简单

  • POST 应该用于修改服务器的状态。
  • 所有其他情况都适用于 GET

因此,您必须在您的情况下使用 GET,而不是 POST。
安全问题在这里无关紧要。

于 2013-01-03T05:36:26.270 回答
1

添加单击事件侦听器并将请求发送到另一个页面。

于 2013-01-03T05:29:46.920 回答
1

您将需要将您的“选择”包装在一个表单中并使用这样的按钮..

<style type="text/css">
/* just styling the overall menu */
#my-post-link ul{
  list-style-type:none;
  text-align:center;
  background-color:cadetblue;
  font-size:1.1em;
  font-weight:600;
  padding:0.45em;
  line-height: 1.75em;
}
/* following line would allow you to create a horizontal menu */
#my-post-link ul li{display:inline;white-space:nowrap;} 
#my-post-link button {
  background-color: transparent; /* <-- removes the gray button */
  border: none; /* <-- removes the border around the button */
  color: white;
  font-size: 1.15em;
  font-weight: 600;
}
#my-post-link button:hover {
  background-color: white;
  color: cadetblue;
  cursor: pointer; /* <-- makes the button text act like a link on hover */
}
</style>
<form id="myForm" name="myForm" method="post">
  <div id="my-post-link"><ul>
    <li><button name="select-me" type="submit" value="var" onclick=\"myForm.action='./page.php';return true;\">Click me!</li>
  </ul></div>
</form>

这将使用键“select-me”将值“var”发布到 page.php,因此您可以使用...读取该变量

$variable = $_POST["select-me"];

您还可以使用伪类进一步设置按钮的样式,以使它们的行为更像常规文本链接,但我认为您明白了。

如果您想查看哪些变量正在 POST 回您的页面,您可以将此代码放在某处:

foreach ($_POST as $key => $value) {
  $i++;
  ${$key} = $value;
  echo "<!-- //[{$i}] {$key}:{$value} -->\n";
}

您还可以使用 var_dump($_POST) 查看 POST 数据

于 2017-04-23T23:28:04.047 回答
0

你也可以

$.get('./page.php?param=true&data=1', function(data){$('#content').append(data);});
于 2016-08-09T07:02:57.380 回答
0

假设您想单击一个链接以注销,并且您希望通过更安全的 post 方法进行注销。你可以这样做。

<a class="nav-link" href="logout.php" data-method="post">Logout (John)</a>

只需将 data-method="post" 添加到链接属性即可。

于 2020-06-18T01:10:02.933 回答