Intereting Posts
Как включить в форму сущности некоторые поля из другого объекта? PHP: массив для значений переменных переменной функции Структура Yii: что делает эта строка JQuery кода Можно ли включить и вызвать функцию JavaScript из PHP-скрипта? И как? Перестановки – все возможные наборы чисел Google Chrome не может подключиться к локальному хосту Отправка данных конфигурации в websocket PHP Crypt () Сравнение двух зашифрованных строк Расширение класса MySQLi PHP: прочитайте php url как xml и проанализируйте его Предупреждение: невозможно изменить информацию заголовка – заголовки, уже отправленные с помощью ERROR Очень конкретный запрос MySQL, который я хочу улучшить Компиляция расширения php с Visual Studio 2008, идентификатор MODULE не совпадает с php Laravel $ q-> где () между датами Форма, которая делает переадресацию браузера при доступе посредством обычной формы или запроса Ajax – возможно ли это?

Как загрузить файл вида из другого представления с помощью Codeigniter БЕЗ необходимости проходить через контроллер?

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

<?php $this->load->view("smthg");?> 

Но на этот раз путь к файлу передается в свойство тега файла данных. У меня есть :

 <a data-file="<?php echo site_url('main/loadCocktailRecipient') ?>/{{Id}}" href="#"> 

и фактически, это используется функцией javascript для загрузки представления самостоятельно. поэтому, когда вы делаете это так, загрузите контроллер вместо файла вида. (или, может быть, даже ничего не загружать). Скажем, я поместил свой взгляд в папку app / views. как я могу убедиться, что этот скрипт фактически загружает этот файл без необходимости контроллера?

Если это невозможно, как я могу адаптировать js-скрипт для загрузки, а не сам файл (который здесь был бы первым контроллером), но окончательный вид, возвращаемый контроллером CI?

EDIT: сценарий JS:

     $(".cocktail .cocktail-item a").on('click', function(event) { event.preventDefault(); var fileToLoad = $(this).data('file'); if(portfolioActive) { closePortfolio(true, fileToLoad); } else { loadPortfolio(fileToLoad); } }); 

    и функция портфолио загрузки:

     function loadPortfolio(fileToLoad) { $portfolioSingle.load(fileToLoad, function() { portfolioSingleH = $portfolioSingle.find('.container').outerHeight(); $portfolioSingle.css({ 'top': -portfolioSingleH }); $('#portfolio').animate({ scrollTop: 0 }, "slow"); $portfolioSingle.stop().animate({ 'top': 0 }, 500, 'easeOutCubic'); $portfolioContainer.stop().animate({ 'marginTop': portfolioSingleH }); portfolioActive = true; bindClosePortfolio(); bindFancybox(); setupFlexslider(); }); } 

    если это слишком сложно, то как я могу просто сказать ему искать скрипт руля по id и загружать содержимое, которое будет генерироваться динамически?

    благодаря

    Related of "Как загрузить файл вида из другого представления с помощью Codeigniter БЕЗ необходимости проходить через контроллер?"

    Не делай этого, это плохая идея. Для этого вам нужно удалить файл .htaccess из папки представлений.

    Вместо этого используйте функцию jquery get, которая делает запрос ajax. $ .get ( "Основной / loadCocktailRecipient / 1");

    Лучший способ – создать новый контроллер, который возвращает объект json с запрошенными данными. Затем, используя $ .get, вы получите этот json, и, наконец, вы перебираете этот json, чтобы поместить содержимое, когда захотите.

    Из документации jQuery:

     $.ajax({ url: "main/loadCocktailRecipient", //the url to retrieve the data data: { id: "1" }, //you can send the get parameters here success: success, //the data returned (your json or html) dataType: dataType //html, json, etc... if the dataType returned is not what you specify it will enter on a .error function. check the jquery documentation });