2015-07-30 2 views
0

Фактически я хочу определить переменную json в контроллере и получить доступ к ней в моем файле js.
я делал это в фреймворка, как показано ниже:Codeigniter: Определите переменную JSON в контроллере

Yii::app()->clientScript->registerScript('helpers', '               
     yii= {                          
      test: 'test'                          
     };                           
    ',CClientScript::POS_HEAD); 

И я могу получить доступ к нему, как yii.test в JS файл.
По какой-то причине я не хочу объявлять его непосредственно в виде части заголовка или нижнего колонтитула.
Заранее спасибо

ответ

2

Вы можете построить для этого конечную точку и загрузить ее через AJAX. В противном случае, печать его где-то на странице (желательно в <head>) - это в значительной степени единственный способ передать значения с сервера на JS.

Кроме того, я буду препятствовать написанию объектов JSON или JS вручную на PHP. Я предлагаю вам создать массив/ассоциативный массив PHP, представляющий этот объект, и использовать json_encode, чтобы превратить его в строку. Затем вы можете распечатать его на странице или отправить через AJAX.

+0

Большое спасибо, я бы подождал любого другого ответа и отметил это как правильное, если бы лучше не приходило. Но я буду признателен вам, если скажу мне причину неловкости этого. Это потому, что разделение опасений? –

+1

@HosseinShahsahebi, потому что вы можете писать искаженные объекты или шарить с кавычками. – Joseph

+0

На практике у меня есть некоторые проблемы. Если я хочу получить доступ к глобальным переменным, загружаемым через AJAX, вызов AJAX должен быть «синхронным» на верхнем уровне моей страницы, и это повлияет на пользовательский опыт. Я прав? Есть ли у вас предложения? Кстати, извините, я не знаю, почему я не могу вас упомянуть. –

Смежные вопросы