Передайте переменные сессии php в javascript и обратно в php

0

У меня есть следующий код, который в основном пользователь вводит в число и нажимает кнопку поиска, которая заставляет 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>
Теги:
session-variables

4 ответа

0
Лучший ответ

Я думаю, что вы ищете именно это: передайте утверждение как переменную 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'];
  • 0
    Привет Питер. Все, что он делает, - это дает мне номер 1 в качестве переменной $ ref_no и ничего для утверждения $
  • 0
    Я исправил ошибку - должно быть $ _GET ['ref_no']. К сожалению, это нелегко сделать, потому что это две страницы. Вы должны поместить первый блок кода в ваш HTML-код, а второй - в ваш PHP на принимающей странице (compatibility2.php). На самом деле, однако, если этот REF_NO является просто одной переменной сеанса, с тех пор его вообще нет. Просто пройдите утверждение и получите номер REF из сессии. Ваша принимающая страница будет выглядеть следующим образом: $ Approval = $ _GET ['Approve']; $ ref_no = $ _SESSION ['REF_NO'];
Показать ещё 2 комментария
0
<?php
session_start();
<?php
<script type="text/javascript">
var vars=passSession("<? echo $_SESSION['session_id']; ?>");
</script>
0

Я не думаю, что вы должны использовать переменную $ _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, чтобы подготовить ссылку утверждения.

  • 0
    ты имеешь ввиду заменить скрипт php для поиска на json?
  • 0
    Нет, я имею в виду, что php-скрипт для поиска должен возвращать JSON. Что вы возвращаете в данный момент? HTML или текст?
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.

  • 0
    Форма отправляется, когда пользователь нажимает кнопку поиска. После этого он нажимает кнопку «Подтвердить», чтобы подтвердить, какой из сценариев запускает JavaScript, чтобы перейти к следующему php-файлу, и может ли это привести к сбою? Кроме того, как вывести его в следующем для использования $ _REQUEST ['php_sess'] или $ _REQUEST ['REF_NO'] или $ _SESSION ['REF_NO']? Я только что попробовал первый, и он не показывает значение.
  • 0
    По сути, вы хотите, чтобы $SESSION['REF_NO'] в $SESSION['REF_NO'] , верно? Вы можете передать данные в $.get(); , api.jquery.com/jquery.get
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню