У меня есть следующий код, который в основном пользователь вводит в число и нажимает кнопку поиска, которая заставляет PHP искать значение и возвращать любые записи из базы данных MySQL (утверждение1.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>
Я думаю, что вы ищете именно это: передайте утверждение как переменную GET.
<a href="http://location/approval2.php?ref_no=<?php echo $_SESSION['REF_NO']; ?>&approval=1">Approve Request</a>
Затем, на странице assert2.php, получите эти переменные GET:
$ref_no = $_GET['ref_no'];
$approval = $_GET['approval'];
<?php
session_start();
<?php
<script type="text/javascript">
var vars=passSession("<? echo $_SESSION['session_id']; ?>");
</script>
Я не думаю, что вы должны использовать переменную $ _SESSION. Когда вы просматриваете что-то на утверждение1.php? И возвращаете некоторые записи БД, также возвращайте идентификатор REF_NO этой записи (например, используйте JSON для отправки двух вещей за раз). Затем, после утверждения, отправьте этот идентификатор снова, просто GET. Для меня это гораздо более последовательное и предотвращает вас от сбоя, например, когда пользователи просматривают две вкладки и т.д.
Пример для утверждения1.php
<?php
$result = json_encode(array(
"REF_NO" => $id,
"content" => $content
);
echo $result;
?>
Затем войдите в JSON в Javascript. Используйте узел REF_NO, чтобы подготовить ссылку утверждения.
Вы можете установить скрытое поле ввода:
<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.
$SESSION['REF_NO']
в $SESSION['REF_NO']
, верно? Вы можете передать данные в $.get();
, api.jquery.com/jquery.get