как использовать сеанс в файле ajax с помощью codeigniter

#session #codeigniter

#сеанс #codeigniter

Вопрос:

существует php-файл, который я вызываю с помощью ajax через представление. xmlhttp.open(«ПОЛУЧИТЬ»,»/my/path/to/background_file.php «);

этот php-файл выполняет какой-то фоновый процесс, и, следовательно, мне не нужен какой-либо контроллер / представление для этого файла. это независимый файл.

учитывая, что мне не нужен никакой контроллер / представление для этого php-файла, могу ли я получить доступ к переменным сеанса там? как?

где я должен хранить такого рода php-файлы, которым не нужен какой-либо view / controller?

заранее спасибо. я использую CodeIgniter 1.7.2

разработка

Ответ №1:

Если вы хотите получить доступ к объектам в массиве сеансов Codeigniters, я бы посоветовал сделать ваш файл ajax контроллером. Довольно часто создается ajax-контроллер, чтобы вы могли получить доступ к функциональности Codeigniter. Конечно, вам не нужно представление, подключенное к контроллеру, вы просто повторяете json_encode ($data), чтобы вернуть любые требуемые данные.

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

1. Я попробую это… и как мне указать путь к этому контроллеру из javascript? …на данный момент я использую этот mlhttp.open(«GET»,»/my/path/to/background_file.php «); … есть ли правильный способ при вызове файла контроллера через javascript?

2. ОК. таким образом, его можно вызвать с помощью ‘<?php echo base_url(); ?>’ ‘/ контроллер / функция’

3. Да, это совершенно верно, при условии, что javascript находится в представлении CI. Если javascript находится в отдельном файле .js, <?php?> не будет работать. Я решаю эту проблему, помещая одну строку javascript в мой вид заголовка: var base_url = ‘<?php echo bse_url(); ?>’; , затем, если у вас есть внешние файлы .js, вы можете использовать base_url ‘контроллер / функция’ для доступа к контроллеру.