【问题标题】:post values to external page explicitly PHP将值明确发布到外部页面 PHP
【发布时间】:2010-05-28 19:06:42
【问题描述】:

我想通过另一个页面中的超链接将值发布到页面。有可能这样做吗?

假设我有一个页面 results.php,它有起始行,

<?php 
if(isset($_POST['posted_value']))
{
echo "expected value"; 
// do something with the data
}
else
{
echo "no the value expected";
}

如果从另一个页面说link.php,我会放置一个这样的超链接:

&lt;a href="results.php?posted_value=1"&gt; ,结果页面会接受吗?

如果我将上面的起始行替换为

if(isset($_REQUEST['posted_value'])),这行得通吗?

我相信上述hyperlink 的计算结果为 GET,但由于 GET 和 POST 之间的唯一可见性差异是 you can see parameters in the address bar with GET

但是,有没有其他方法可以放置可以将值发布到页面的超链接?或者我们可以使用 jquery 代替指向POST 值的超链接吗?

谁能给我一些建议吗?

谢谢。

【问题讨论】:

    标签: php jquery html hyperlink


    【解决方案1】:

    无论请求类型是 GET 还是 POST,您都可以看到查询字符串(以及 $_GET)。 POST 将附加参数传递给脚本的标准输入,这些参数被解析以生成$_POST$_FILES。单击超链接会生成 GET 请求,除非您使用 JavaScript 通过模拟 POST 表单的提交来覆盖它。

    【讨论】:

      【解决方案2】:

      您不能使用超链接发出 POST 请求。这将始终发出 GET 请求。你需要使用 javascript 来做到这一点。使用 jQuery 非常容易使用 $.post$.ajax 方法。

      示例代码:

      html:

      <a id="MyLink" href="#">Link</a>
      

      javascript:

      $(function() {
      
          $("MyLink").click(function () {
            $.post("test.php", { name: "John", time: "2pm" } );
          });
      });
      

      当然你可以用 html 代码做任何事情,但不建议这样做:

      <a href='#' onclick='$.post("test.php", { name: "John", time: "2pm" } )'>Link</a>
      

      【讨论】:

      • 不确定如何使用 jquery 将超链接输出到 POST 值
      • 如果我将此.click javascript 代码放在head 区域或body 中,有什么真正的区别吗?
      • 最好放在head部分。在这种情况下,我认为它不会有所作为。
      【解决方案3】:

      你的假设是正确的。超链接不能 POST 到 PHP 脚本,只能将参数作为 GET 传递。您可以按照 kgiannakakis 的建议在 jQuery 中使用 $.ajax 方法,该方法将 POST 到 PHP 脚本,但是您只会更改页面的一部分而不是整个页面。

      另一种解决方案是使用表单和按钮 - 如果您愿意,可以将其设置为链接。

      <style>
      .formlink {
          display: inline;
      }
      .formlink input.submit {
          display: inline;
          background: transparent none;
          border: 0;
          color: blue;
      }
      </style>
      
      <form class="formlink" method="post" action="script.php">
          <input type="hidden" name="posted_value" value="1" />
          <input type="submit" value="Post 1" class="submit" />
      </form>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-04
        • 1970-01-01
        • 1970-01-01
        • 2017-10-12
        • 1970-01-01
        • 1970-01-01
        • 2017-03-07
        • 2013-08-09
        相关资源
        最近更新 更多