Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Joomla 2.5 Ajax组件不工作_Ajax_Joomla - Fatal编程技术网

Joomla 2.5 Ajax组件不工作

Joomla 2.5 Ajax组件不工作,ajax,joomla,Ajax,Joomla,多年来,我一直试图让Json在Joomla中工作,但我就是做不到。我想我已经尝试了URL等的每一种组合,所以任何帮助都是非常好的: 这是针对管理员端结构的 管理员 -控制器 -orderitem.php -观点 -订单项 --tmpl --orderitem.php -controller.php 函数updateNownerFresh{ var dataJSON = JSON.encode (newrefresh); var request = new Request.JSON({ m

多年来,我一直试图让Json在Joomla中工作,但我就是做不到。我想我已经尝试了URL等的每一种组合,所以任何帮助都是非常好的:

这是针对管理员端结构的 管理员

-控制器

-orderitem.php

-观点

-订单项

--tmpl

--orderitem.php

-controller.php

函数updateNownerFresh{

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、CustomersitedTailsView


你知道我从哪里开始吗?谢谢

您可以在这里查找joomla中正确的ajax调用

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

Joomla没有将AJAX作为其系统的一部分进行构建。我的答案来自LyDaNo的Josef Leblanc教程。

正如我所说: 在前端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 ) );
        }

}
尼布拉-我在我所有的joomla网站上都使用了它,它的工作非常完美。您的评论是错误的,请将我的功劳退还给我

您缺少包含CustomersitedTailsvieWorderItem类的视图/orderitem/view.raw.php

views/orderitem/view.raw.php


你想连接到什么?orderitem控制器中的函数,或者加载视图orderitem,或者调用controller.php中的函数?请看com_finder。其中有几个AJAX部分可以为您提供一些解决问题的建议;这是乔姆拉!环境,你的答案没有帮助。嗨,谢谢你的回复。我尝试在view.raw.php文件中添加,但仍然得到相同的响应视图not found[name,type,prefix]:orderitem,raw,customersitedetailsViewOkay,所以它起作用了-我将视图放在tmpl文件夹而不是view文件夹中。谢谢,我很高兴:
class CustomersitedetailsViewOrderitem extends JViewLegacy
{
    public function display($tpl = null)
    {
        $response = 'Your magic response here';
        echo $response;
        JFactory::getApplication()->close();
    }
}