Массив Php уничтожается и заменяется каждый раз, когда я делаю ajax-запрос к нему? - PullRequest
0 голосов
/ 28 мая 2011

При нажатии кнопки в моем php-скрипте создается ajax POST со следующим кодом

<?php
    $number = $_POST["id"];
    $myarray[$number] = $_POST["marker"];
?>

Две записи POST: id и marker.Я надеялся, что каждый щелчок кнопки конечным пользователем будет создавать все больший массив, называемый $myarray, потому что $number обычно изменяется.

Вместо этого каждый щелчок кнопки уничтожает исходный $myarray и создает новый $myarray только с одной парой данных (недавно отправленный номер $ и $_POST["marker"]).

Как я могу его кодировать, чтобы массив создавался с каждым нажатием кнопки?

Ответы [ 3 ]

4 голосов
/ 28 мая 2011

HTTP - это протокол без сохранения состояния, поэтому сервер не может узнать о $my_array после каждого запроса.PHP просто генерирует некоторый HTML, а сервер обслуживает этот сгенерированный HTML.Вы можете хранить информацию на стороне клиента в javascript, однако.

Что касается вашего комментария-вопроса: Нет, это не так.Решение действительно зависит от вашего варианта использования: если вам нужна информация, которая будет доступна для последующего использования, вам придется хранить ее в базе данных или файле.Если только для текущей страницы просмотра, сохраните ее в браузере пользователя с помощью JavaScript.Сохранение его в качестве переменной сеанса является еще одним вариантом.

1 голос
/ 28 мая 2011

Вам необходимо сохранить его в сеансе. Документация .

В основном,

session_start();

$myarray = $_SESSION['myarray'];
//work with $myarray here

//store it back in the session
$_SESSION['myarray'] = $myarray;
0 голосов
/ 28 мая 2011

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

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