通过PHP Post将Javascript变量传递到另一个页面

时间:2020-09-18 07:35:53

标签: javascript php ajax

我有两个php页面:

第1页:

<form class="form-horizontal"  role="form" method="post" action="Page2.php">
      <button id="place-order" class="btn btn-lg btn-success">Place Order</button>
      <div id="ajax-loader" style="display:none;"><img src="images/ajax-loader.gif" /></div>
</form>
<script>
      var id = Math.random();
      $(document).ready(function() {
        $('#place-order').on('click', function() {
            $(this).hide();
            $('#ajax-loader').show();
        });
      });
</script>

在表单上,​​它重定向到Page2.php,我想从Page1传递Javascript变量“ id”以在Page2中接收它。 我曾尝试使用Cookie,但需要另一种方法。

我不了解从PHP到JS的过渡,反之亦然。感谢帮助。 预先感谢

3 个答案:

答案 0 :(得分:1)

您可以使用会话存储或cookie。 会话存储示例:

// First web page:
sessionStorage.setItem("myVariable", "myValue");
 
// Second web page:
var favoriteMovie = sessionStorage.getItem('myVariable');

答案 1 :(得分:1)

亲爱的,您可以使用Ajax轻松完成此操作。 Ajax具有data属性,可帮助您将数据从javascript传递到另一个页面。

此链接将为您提供很多帮助 https://api.jquery.com/jquery.ajax/

答案 2 :(得分:1)

您可以使用查询字符串将值传递给下一页。

  1. 向表单添加ID
<form class="form-horizontal"  role="form" method="post" action="Page2.php" id="order-form">
  1. 更新表单的操作以从我们的JS变量添加此查询字符串
var id = Math.random();
$('#order-form').attr('action', 'Page2.php?id=' + id);
  1. 在PHP中获取此变量(显然,您可能想对其进行更多检查)
<? $id = $_GET['id'] ?>

我们现在可以在PHP的任何地方使用$id,并且将使用从JS生成的ID。整洁吧?如果我们再次想要在JS中怎么办?只需添加另一个脚本标签并在其中回显即可!

<script type="text/javascript">
var id = <? echo $id ?>;
</script>

编辑:已更新,添加了一些有关它如何工作的信息,就像您说的那样,您不太确定PHP和JS之间的过渡。

PHP 在服务器上运行。它对浏览器了解不多,对JS也不了解。它会运行所有内容并完成显示网页之前的 。我们可以通过创建脚本标签和创建一个新的JavaScript变量,echo将PHP值传递给JS,将PHP变量传递给JS。

JS (JavaScript)在浏览器中运行。它不知道服务器上发生的任何事情。它所知道的只是它正在其中运行的HTML文件(按CTRL + U查看原始HTML)。由于JS与PHP的运行时间完全不同,因此没有简单的方法来传输变量(例如$phpVar = myJSVar)。因此,我们必须使用POSTGET之类的服务器方法。

我们可以通过2种主要方式创建GETPOST请求:

  1. 使用表格
  2. 使用AJAX请求

表单以我概述的方式工作,或者您可以创建一个隐藏字段,设置所需的值,然后进行检查。这涉及到重定向到另一个页面。

AJAX(异步Javascript和Xml)的工作原理略有不同,因为用户不必离开页面即可进行请求。我将留给您研究如何对其进行实际编程(jQuery有一个不错的简单API!),但它基本上是作为后台请求工作的-一个示例将显示一个加载微调器,同时从另一个页面加载订单详细信息

希望这会有所帮助,如果有不清楚的地方,请通知我!

相关问题