#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. Я видел скрипт, который имеет аналогичный сценарий. он успешно повторно использовал переменную, установленную в конструкторе, вместо того, чтобы рассматривать ее как переменную класса. я тщательно проверю, чтобы подтвердить это, но пока я закрою эту тему. Спасибо Крису за обмен.