CodeIgniter, доступ к свойству класса после перезагрузки страницы, возможно ли это?

#php #class #codeigniter #properties

#php #класс #codeigniter #свойства

Вопрос:

У меня есть страница CI, которая будет загружаться в файл div in view с использованием jQuery. Используя switch (page_parameter), я контролирую то, что отображается на странице.

Когда я вызываю страницу в третий раз, я устанавливаю значение в массив class. Но когда я вызываю 4-й раз, массив становится пустым.

Мне было интересно, действительно ли возможно использовать свойство класса для хранения значения, которое может быть использовано после повторного доступа к странице? Или чего-то не хватает в моей голове? Я знаю, что использование session — не очень хорошая идея, поскольку реальный массив представляет собой большой кусок сериализованного xml.

Вот мой код:

 class MyClass extends MY_Controller
{
    public static $pitems = array();

    function Hotel(){
        parent::MY_Controller();
    }

   function new_campaign(){
        $params = $this->uri->uri_to_assoc();
        switch($params['step']){
             case '3' : self::$pitems = array("test","another"); //here the class array was set successfully
                        $this->load->view('viewer');
                        break;
             case '4' : print_r(self::$pitems); //here the array is empty
                        break;

        }
   }
  

На странице просмотра есть вызов страницы:

    <a href="myclass/new_campaign/step/4">Next page</a>
  

Та же проблема и с $ this->
Чего мне здесь не хватает?
Заранее спасибо ~

редактировать: я видел скрипт, который имеет аналогичный сценарий. он успешно повторно использовал переменную, установленную в конструкторе, вместо того, чтобы рассматривать ее как переменную класса. я тщательно проверю, чтобы подтвердить это, но пока я закрою эту тему. Спасибо Крису за обмен.

Ответ №1:

Я не совсем уверен, что вы пытаетесь сделать, но у меня есть пользователи jQuery post () / get () / ajax () много раз в CI, и у них не было проблем. Итак, несмотря на то, что вы не знаете или не понимаете, что вы пытаетесь сделать. Я думал, что, по крайней мере, скажу, что знаю, что загрузка данных без обновления в CI через что-то вроде jQuery не является проблемой. Например, в системе, которую я построил на CI, была лента твитов, похожая на Twitter, где jQuery по таймеру запрашивал новые данные и возвращался с ними каждый раз соответственно, если нужно было показать что-то новое.

Комментарии:

1. Спасибо, Крис. Да, у меня нет проблем с загрузкой страницы с помощью jquery. Я пытаюсь установить переменную класса из одного из регистров в функции и получить ту же (измененную) переменную при следующей загрузке страницы. Каким-то образом эта переменная сбрасывается при загрузке страницы (которая пуста …) Надеюсь, это поможет…

2. Я видел скрипт, который имеет аналогичный сценарий. он успешно повторно использовал переменную, установленную в конструкторе, вместо того, чтобы рассматривать ее как переменную класса. я тщательно проверю, чтобы подтвердить это, но пока я закрою эту тему. Спасибо Крису за обмен.