将 php 会话变量传递给 javascript 并返回给 php
Pass php session variables to javascript and back to php
我有以下代码,基本上用户输入一个数字并按下搜索按钮,这使得 PHP 查找值和 return 来自 MySQL 数据库的任何记录(approval1.php?去)。这按预期工作,所以我省略了该代码。我想要做的是在用户查看记录后,他们可以通过单击 link 来批准他们。 link 运行一些 javascript,它获取从 PHP 会话输入的数字。一旦 javascript 将用户带到下一页,我希望它将该值传递回 php ,以便它可以显示在下一个表单中。如何做到这一点,还有更简单的方法吗?我找到的所有内容都是从 php 到 javascript 或相反。我似乎找不到任何显示如何取回会话变量的内容。
<!DOCTYPE HTML>
<?php
session_start();
?>
<html>
<head><title>Title</title></head>
</head>
<p><body>
<h3>Search:</h3>
<p>Please enter the reference number of the record you would like to review:</p>
<form method="post" action="approval1.php?go" id="searchform">
<input type="number" name="REF_NO">
<input type="submit" name="submit" value="Search">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function approve() {
passSession("<? echo $_SESSION['REF_NO']; ?>");
$.get("approval2.php");
return false;
}
</script>
<a href="http://location/example.com" onclick="approve();">Approve Request</a>
</form>
</body>
</html>
</p>
<?php
session_start();
<?php
<script type="text/javascript">
var vars=passSession("<? echo $_SESSION['session_id']; ?>");
</script>
您可以设置隐藏输入框:
<form method="post" action="approval1.php?go" id="searchform">
<input type="number" name="REF_NO">
<input type="hidden" name="php_sess" value="<?php echo $_SESSION['REF_NO']; ?>">
<input type="submit" name="submit" value="Search">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function approve() {
passSession("<? echo $_SESSION['REF_NO']; ?>");
$.get("approval2.php");
return false;
}
</script>
<a href="http://location/example.com" onclick="approve();">Approve Request</a>
</form>
因此,当您提交表单时,$_REQUEST['php_sess']
将填充在 php 中。
我想您正在寻找的只是这个:将批准作为 GET 变量传递。
<a href="http://location/approval2.php?ref_no=<?php echo $_SESSION['REF_NO']; ?>&approval=1">Approve Request</a>
然后,在 approval2.php 页面中,接收那些 GET 变量:
$ref_no = $_GET['ref_no'];
$approval = $_GET['approval'];
我认为您不应该在这里使用 $_SESSION 变量。当你在 approval1.php?go 查找一些东西时,你 return 一些数据库记录,还有 return 该记录的 ID REF_NO(例如使用 JSON 发送两个一次的事情)。然后,在获得批准后,只需通过 GET 再次发送此 ID。对我来说,这更加一致并且可以防止您失败,例如当用户使用两个选项卡浏览时,等等
approval1.php
的示例
<?php
$result = json_encode(array(
"REF_NO" => $id,
"content" => $content
);
echo $result;
?>
然后,访问Javascript中的JSON。使用 REF_NO 节点准备您的批准 link。
我有以下代码,基本上用户输入一个数字并按下搜索按钮,这使得 PHP 查找值和 return 来自 MySQL 数据库的任何记录(approval1.php?去)。这按预期工作,所以我省略了该代码。我想要做的是在用户查看记录后,他们可以通过单击 link 来批准他们。 link 运行一些 javascript,它获取从 PHP 会话输入的数字。一旦 javascript 将用户带到下一页,我希望它将该值传递回 php ,以便它可以显示在下一个表单中。如何做到这一点,还有更简单的方法吗?我找到的所有内容都是从 php 到 javascript 或相反。我似乎找不到任何显示如何取回会话变量的内容。
<!DOCTYPE HTML>
<?php
session_start();
?>
<html>
<head><title>Title</title></head>
</head>
<p><body>
<h3>Search:</h3>
<p>Please enter the reference number of the record you would like to review:</p>
<form method="post" action="approval1.php?go" id="searchform">
<input type="number" name="REF_NO">
<input type="submit" name="submit" value="Search">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function approve() {
passSession("<? echo $_SESSION['REF_NO']; ?>");
$.get("approval2.php");
return false;
}
</script>
<a href="http://location/example.com" onclick="approve();">Approve Request</a>
</form>
</body>
</html>
</p>
<?php
session_start();
<?php
<script type="text/javascript">
var vars=passSession("<? echo $_SESSION['session_id']; ?>");
</script>
您可以设置隐藏输入框:
<form method="post" action="approval1.php?go" id="searchform">
<input type="number" name="REF_NO">
<input type="hidden" name="php_sess" value="<?php echo $_SESSION['REF_NO']; ?>">
<input type="submit" name="submit" value="Search">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function approve() {
passSession("<? echo $_SESSION['REF_NO']; ?>");
$.get("approval2.php");
return false;
}
</script>
<a href="http://location/example.com" onclick="approve();">Approve Request</a>
</form>
因此,当您提交表单时,$_REQUEST['php_sess']
将填充在 php 中。
我想您正在寻找的只是这个:将批准作为 GET 变量传递。
<a href="http://location/approval2.php?ref_no=<?php echo $_SESSION['REF_NO']; ?>&approval=1">Approve Request</a>
然后,在 approval2.php 页面中,接收那些 GET 变量:
$ref_no = $_GET['ref_no'];
$approval = $_GET['approval'];
我认为您不应该在这里使用 $_SESSION 变量。当你在 approval1.php?go 查找一些东西时,你 return 一些数据库记录,还有 return 该记录的 ID REF_NO(例如使用 JSON 发送两个一次的事情)。然后,在获得批准后,只需通过 GET 再次发送此 ID。对我来说,这更加一致并且可以防止您失败,例如当用户使用两个选项卡浏览时,等等
approval1.php
的示例<?php
$result = json_encode(array(
"REF_NO" => $id,
"content" => $content
);
echo $result;
?>
然后,访问Javascript中的JSON。使用 REF_NO 节点准备您的批准 link。