CodeIgniter, PHP, JQuery и AJAX - PullRequest
       2

CodeIgniter, PHP, JQuery и AJAX

4 голосов
/ 11 апреля 2011

Мне интересно, как люди используют CodeIgniter и jQuery для AJAX.

В вашем запросе AJAX у вас есть

{
  url : ???,
  data : {a:1,b:2},
  success: ....
}

Итак, как вы создаете URL?

У вас

  • есть все ваши JavaScript в ваших файлах просмотра, и просто используйте site_url() для построения URL
  • имеет весь ваш JavaScript во внешних js-файлах, имеет включенное представление заголовка, которое имеет что-то вроде <script>var base_url = '<?php echo site_url(); ?>';</script> Тогда в ваших внешних файлах js есть url: base_url+'rest/of/path/';
  • какой-то другой метод?

Ответы [ 4 ]

4 голосов
/ 11 апреля 2011

Все мои файлы js хранятся во внешнем файле, и я загружаю их в свой шаблон.

Для конкретных запросов ajax просто вызовите страницу, как обычно.

$.ajax({
    type: 'POST',
    url: '/ajax/login',
    data: blabla,
    success: function(data) {
    // do something
    },
    dataType: 'json');
});

В ответ на ваш вопрос мне не нужно было указывать базовый URL-адрес, так как установка «/» перед тем, как имя контроллера автоматически устанавливает корень сайта. Вы также можете использовать ../ etc

2 голосов
/ 23 февраля 2014

если вы пишете свой AJAX во внешний файл, тогда вы можете определить свой базовый URL в файле вида, например,

<script>
     var base_url = '<?php echo base_url(); ?>';
</script>

Затем в свой внешний AJAX-файл напишите

url : base_url+'controllerName/functionName',
0 голосов
/ 01 июня 2013

Обычно я создаю небольшой javascript в своем заголовке, в котором я создаю переменные base_url и site_url (обычно это свойства объекта, который я называю CI, но это личное предпочтение).Я заполняю эти значения, повторяя значения с помощью PHP.Если вы сделаете это первым загруженным скриптом, вы всегда будете иметь site_url в JS.

Поскольку я на мобильном телефоне, я не могу опубликовать исходный код сейчас.

0 голосов
/ 01 июня 2013

Это также можно сделать, загрузив представление, содержащее ваш JavaScript.

В настоящее время я загружаю JavaScript из представления в конце отображаемой страницы. Поскольку это PHP-файл с html <script>, вы можете использовать вспомогательные функции URL, такие как site_url(), для создания URL-адресов, необходимых для каждой функции.

Пример представления может содержать:

<script>
$.ajax{
    url : "<?=site_url("controller/function")?>",
    data : {a:1,b:2},
}
</script>

Это даст вам сгенерированные CodeIgniter URL для вашего JavaScript. Вы даже можете передать переменные в представление для большего контроля над вашим js.

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