2013-05-16 3 views
0

Я пытаюсь вечно, чтобы Json работал в Joomla, и я просто не могу этого сделать. Я думаю, что я перепробовал все комбинации URL и т.д., так что любая помощь будет здорово:Joomla 2.5 Компонент Ajax не работает

это для боковых админ структуры выглядит админ

-controllers

--orderitem.php

Вид

--orderitem

--- TMPL

---- orderitem.php

-controller.php

функция updateNow (newrefresh) {

var dataJSON = JSON.encode (newrefresh); 
var request = new Request.JSON({ 
    method: 'post', 

    url: 'index.php?option=com_customersitedetails&view=orderitem&task=refreshscreen&format=raw', 
    data: { 
     json: dataJSON 
     }, 
    onComplete: function(jsonObj) { 
     alert("Your form has been successfully submitted "); 

    } 
}).send(); 

};

Хотя работает коробка оповещения не Retun JSON только

Просмотр не найдено [имя, тип, префикс]: OrderItem, сырье, customersitedetailsView

Любые идеи, где я могу начать? спасибо

+0

Что вы пытаетесь подключиться к? Функция в контроллере orderitem или загрузить элемент order view или вызвать функцию в контроллере.php? –

+0

Взгляните на com_finder. В нем есть несколько частей AJAX, которые могут дать вам некоторые рекомендации по исправлению проблемы. – Michael

+0

Я хочу вызвать функцию в контроллере, чтобы я мог обработать JSON и обработать обработанные данные – user1616338

ответ

0

Вам не хватает views/orderitem/view.raw.php, содержащий класс CustomersitedetailsViewOrderitem.

просмотров/OrderItem/view.raw.php

class CustomersitedetailsViewOrderitem extends JViewLegacy 
{ 
    public function display($tpl = null) 
    { 
     $response = 'Your magic response here'; 
     echo $response; 
     JFactory::getApplication()->close(); 
    } 
} 
+0

привет, спасибо за ответ. Я попытался добавить файл view.raw.php, но я все равно получаю тот же ответ Просмотр не найден [имя, тип, префикс]: orderitem, raw, customersitedetailsView – user1616338

+0

Хорошо, так это сработало - я бы поместил представление в tmpl вместо папки просмотра. Спасибо, я так счастлив :) – user1616338

-1

Вы можете посмотреть здесь для правильного вызова AJAX в Joomla How to Write PHP in AJAX

внутри контроллеров вы должны иметь файл «mycall.json.php» этот файл будет обрабатывать и возвращать формат JSON вашего AJAX вызова

Joomla не дает сборки в AJAX как часть его системы. мой ответ от Josef Леблан, конечно, в lynda.com http://www.lynda.com/Joomla-1-6-tutorials/Joomla-1-7-Programming-and-Packaging-Extensions/73654-2.html

Как я уже сказал: Написать этого я внешнего интерфейса JS:

$.ajax({ 
     type: 'GET', 
     url: 'index.php', 
     data: {option: 'com_componenetname', task: 'taskname.youroperation', format: 'json', tmpl: 'raw'}, 
    dataType: 'json', 
     async: true, // can be false also 
     error: function(xhr, status, error) { 
       console.log("AJAX ERROR in taskToggleSuceess: ") 
       var err = eval("(" + xhr.responseText + ")"); 
       console.log(err.Message); 
       }, 
     success: function(response){ 

       // on success do something 
       // use response.valuname for server's data 
         } 
       , 
     complete: function() { 
      // stop waiting if necessary 
       }      
      }); 

во внутреннем интерфейсе вы должны иметь файл под com_componentname/контроллеры/TASKNAME .json.php

файл должен выглядеть следующим образом

class ComponentnameControllerTaskname extends JControllerLegacy (Legacy only J3.0) 
{ 
    public function __construct($config = array()) 
    { 
     parent::__construct($config); 

     $this->registerTask('operationname', 'functionname'); 
    } 

    public function functionname() { 

      // do something in backend 
      echo json_encode(array(''var1' => val1, 'var2' => val2)); 
     } 

} 

nibra - я использую Тхи на всех моих сайтах Joomla и его работе. ваш комментарий был неправ, пожалуйста, дайте мне мой кредит обратно

+0

-1; это Joomla! где ваш ответ не помогает. – nibra

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