将php会话变量传递给javascript并返回php

时间:2015-02-02 10:08:31

标签: javascript php session-variables

我有以下代码,基本上用户输入一个数字并按下搜索按钮,这使得PHP查找值并从MySQL数据库返回任何记录(approval1.php?go)。这按预期工作,所以我把代码留了下来。我想要做的是在用户通过点击链接查看可以批准的记录之后。该链接运行一些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>

4 个答案:

答案 0 :(得分:0)

<?php
session_start();
<?php
<script type="text/javascript">
var vars=passSession("<? echo $_SESSION['session_id']; ?>");
</script>

答案 1 :(得分:0)

您可以设置隐藏的输入字段:

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

答案 2 :(得分:0)

我认为您正在寻找的就是:将批准作为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'];

答案 3 :(得分:0)

我认为你不应该在这里使用$ _SESSION变量。当您在approval1.php上查找某些内容时,返回一些数据库记录,同时返回该记录的ID REF_NO(例如,使用JSON一次发送两个内容)。然后,在批准时,再次发送此ID,只需通过GET。对我来说,这更加一致,可以防止你失败,例如当用户使用两个标签等进行浏览时

approval1.php的示例

<?php

$result = json_encode(array(
  "REF_NO"  => $id,
  "content" => $content
);

echo $result;
?>

然后,在Javascript中访问JSON。使用REF_NO节点准备您的批准链接。