2015-02-02 4 views
0

У меня есть следующий код, который в основном пользователь вводит в число и нажимает кнопку поиска, что заставляет PHP искать значение и возвращать любые записи из базы данных MySQL (утверждение1.php? Go). Это работает так, как ожидалось, поэтому я оставил этот код. Я пытаюсь сделать это после того, как пользователь просмотрит записи, которые могут быть одобрены, щелкнув ссылку. Эта ссылка запускает некоторый javascript, который принимает число, введенное с сеанса PHP. Как только javascript выведет пользователя на следующую страницу, которая также работает, я хочу, чтобы он передал это значение обратно на php, чтобы он отображался в следующей форме. Как это можно сделать, а также есть ли более простой способ сделать это? Все, что я нахожу, это либо от php до javascript, либо наоборот. Кажется, я не могу найти ничего, что показывает, как вернуть переменную сеанса.Передать переменные сеанса php на javascript и вернуться к php

<!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> 

ответ

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']; 
+0

Привет, Питер. Все, что он делает, это дать мне номер 1 в качестве переменной $ ref_no и ничего для утверждения $ – John

+0

Я исправил ошибку - должен быть $ _GET ['ref_no']. К сожалению, сделать это нелегко, поскольку это две страницы. Вы должны поместить первый блок кода в свой HTML и второй в PHP на получающей странице (утверждение2.php). На самом деле, если этот REF_NO - это всего лишь одна переменная сеанса, с тех пор ее нет вообще. Просто передайте утверждение и получите номер REF из сеанса. Ваша страница для получения будет: $ утверждение = $ _GET ['утверждение']; $ ref_no = $ _SESSION ['REF_NO']; –

+0

Хорошо, что работает. Большое спасибо Петру. – John

0
<?php 
session_start(); 
<?php 
<script type="text/javascript"> 
var vars=passSession("<? echo $_SESSION['session_id']; ?>"); 
</script> 
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']? Я просто попробовал первый, и он не показывает значение. – John

+0

В принципе, вы хотите '$ SESSION ['REF_NO']' в утверждении 2.php, правильно? Вы можете передавать данные в '$ .get();'. http://api.jquery.com/jquery.get/ – Jigar

+0

Да, это правильно. Поэтому, если я правильно понимаю все, что мне нужно сделать после утверждения на утверждение.2.php, нужно просто откликнуть $ _SESSION ['REF_NO']; правильно? Или мне нужно вернуть его из $ .get()? – John

0

Я не думаю, что вы должны использовать переменную в $ _SESSION, здесь. Когда вы просматриваете что-то в файле утверждения1.php? И возвращаете некоторые записи DB, также возвращайте id REF_NO этой записи (например, используйте JSON для отправки двух вещей одновременно). Затем, после утверждения, отправьте этот идентификатор снова, просто GET. Для меня это гораздо более последовательное и предотвращает вас от сбоя, например. когда пользователи просматривают с двумя закладками и т.д.

Пример для approval1.php

<?php 

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

echo $result; 
?> 

Затем доступ к JSON в JavaScript. Используйте узел REF_NO, чтобы подготовить ссылку утверждения.

+0

Вы хотите заменить скрипт php для поиска с помощью json? – John

+0

Нет, я имею в виду, что скрипт php для поиска должен возвращать JSON.Что вы сейчас возвращаете? html или текст? – agoldev

Смежные вопросы