передать переменную в php форму после отправки формы - PullRequest
1 голос
/ 08 августа 2011

Я хочу передать переменную с php-страницы на другую без использования сессий.

вот страница SearchCustomer.php, которая имеет от

<form action="controllers/Customer.controller.php" method="post">
<label for="cellPhoneNo">cell phone number</label>
    <input type="text" name="cellPhoneNo" class="textField"/>
    <span id="cellphonePrefix"></span>

    <label for="telephone">telephone </label>
    <input type="text" name="telephone" class="textField"/>

    <input type="submit" name="searchCustomer" value="بحث"/>

в Customer.controller.php Я ищу клиента и возвращаю $result, я хочу передать переменные, определенные в Customer.controller.php, на страницу SearchCustomer.php, из которой отправляется исходная информация без использования сессий.

Ответы [ 4 ]

4 голосов
/ 08 августа 2011

Этого можно добиться с помощью скрытых элементов управления вводом.

В Customer.controller.php:

echo "<input type='hidden' name='result' value='{$result}'>";

В SearchCustomer.php:

$passedResult = $_POST['result'];

Обновление : Вопрос немного изменился, используйте редирект, подобный следующему:

header("Location: http://yoursite.com/SearchCustomer.php?result={$result}");
2 голосов
/ 08 августа 2011

Насколько я понимаю, ваша проблема: вы хотите выполнить поиск в Customer.controller.php и сразу же отобразить результаты в SearchCustomer.php, верно?

Ну, это пахнет AJAX:)

Попробуйте это (используя jQuery):

SearchCustomer.php

<form id="search_form" action="controllers/Customer.controller.php" method="post">
//...
</form>

<div id="output">
</div>

<script>
$('#search_form').submit(function() {
  $.post($(this).attr('action'), $(this).serialize(), function(data) {
    for(var i = 0; i < data.length; i++) {
      $('#output').append('field one: ' + data[i].field1 + '<br />');
    }
  }, 'json');
  return false;
});
</script>

Customer.controller.php

<?php

$cellPhoneNo = $_POST['cellPhoneNo'];
//....

//perform the search, 
//fetch the assoc-array, e.g. $results 
echo json_encode($results);

Код не проверен, но вы поняли;)

2 голосов
/ 08 августа 2011

Как только пользователь отправит вашу форму, ваш сервер будет обрабатывать отправленные ей данные формы.PHP берет это и анализирует для вас в массиве с именем $ _POST.

PHP $ _POST

Поскольку вы не определяете действие в своей форме, массив _POST будет доступен на той же странице, что и ваша форма, после ее отправки.Проведите простой тест в верхней части своей страницы:

if(isset($_POST['cellPhoneNo'])) {
 echo "Thank you for your phone numbers!";
}
2 голосов
/ 08 августа 2011

Вы можете каким-то образом использовать скрытые поля!

, например:

<input type="hidden" name="multiPageValue" 
value="<?php echo $_POST['multiPageValue'];?>"/>

, и вы можете продолжать использовать этот фрагмент на всех последовательных страницах, по которым вы будете перемещаться.отправив форму!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...