使用onclick发布变量?

时间:2013-01-03 05:24:47

标签: php html

如何通过点击链接$ _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"];

7 个答案:

答案 0 :(得分:11)

试试这个:

<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>

<强> Reference Link

答案 1 :(得分:5)

不确定为什么不这样做:

//在第一页

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

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

$variable = $_GET['var'];

<强>更新

根据您的上述评论:

  

GET显示URL中的信息,而POST则显示   不。我不希望最终用户只是编辑URL   他们希望的价值。 @popnoodles,当用户点击超链接时,   它将指向一个新页面。 - riista

您正在尝试为安全原因执行此操作,因为 方法是使用GET或AJAX进行此操作的好方法 >不安全,因为两个都可以被篡改。您需要重新考虑您要保护的内容以及如何检查提交的数据是否有效。

答案 2 :(得分:3)

在GET和POST之间做出选择很简单

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

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

你需要包装你的选择&#34;在一个表格中,并使用这样的按钮..

<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>

这将POST值&#34; var&#34;使用键&#34;选择我&#34;到page.php,所以你会用...读取该变量

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

您还可以使用伪类对按钮进行进一步设置样式,使其更像常规文本链接,但我认为您可以理解。

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

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

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

答案 5 :(得分:0)

你也可以

pald

答案 6 :(得分:0)

比方说,您想单击一个链接以注销,并且希望通过邮寄方式进行注销,这样更安全。你可以这样做。

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

只需将data-method =“ post”添加到链接属性。