0

我一直在努力让 Json 在 Joomla 中工作,但我就是做不到。我想我已经尝试了 URL 等的每种组合,所以任何帮助都会很棒:

这是管理端结构看起来像管理员

-控制器

--orderitem.php

- 意见

--订单项

---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();

};

尽管运行警报框,但它不会仅重新调整 JSON

未找到视图 [名称、类型、前缀]:orderitem、raw、customersitedetailsView

我可以从哪里开始有什么想法吗?谢谢

4

2 回答 2

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();
    }
}
于 2013-05-16T22:12:35.383 回答
-1

您可以在此处查找 joomla 中正确的 ajax 调用 How to Write PHP in AJAX

在您的控制器中,您应该有一个文件“mycall.json.php”,该文件将处理并返回您的 ajax 调用的 json 格式

Joomla 没有将 AJAX 构建作为其系统的一部分。我的答案来自 lynda.com 的 Josef Leblanc 课程 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/controllers/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 网站中都使用它,它的工作非常完美。你的评论是错误的,请把我的信用还给我

于 2013-05-16T18:59:49.407 回答