繁体   English   中英

Joomla中的Ajax,用于自行开发的模块

[英]Ajax in Joomla for a self developed module

我正在尝试将com_ajax用于我正在创建的模块。

但是在浏览器控制台中,出现以下错误:

“方法getAjax不存在。”

根据com_ajax,所有方法必须以Ajax结尾

因此,下面我在jQuery请求中的代码,URL &method=get应该引用我的帮助文件中的名为getAjax()的函数

我的jQuery请求如下所示:

jQuery(document).ready(function(){
    jQuery('.trash').click(function(){
        var del_id= jQuery(this).attr('id');
        var $ele = jQuery(this).parent();
        jQuery.ajax({
            type:'POST',
            url:'index.php?option=com_ajax&module=usernotes&method=getFilterData&format=json',
            data:{del_id:del_id},
            success: function(data){
                console.log(data);
                /*if(data=="YES"){
                    $ele.fadeOut().remove();
                }else{
                    alert("Fejl: kan ikke slettes")
                }*/
            }
        })
    })
});

这是我在帮助文件中得到的:

class modUserNoteHelper
{
    public static function getFilterDataAjax() {
        $output = $_POST['del_id'];
        echo $output;
        return $output;
    }
}




我也尝试过这样,这在控制台中给了我POST 404错误

jQuery(document).ready(function(){
    jQuery('.trash').click(function(){
        var del_id= jQuery(this).attr('id');
        request = {
            'option' : 'com_ajax',
            'module' : 'usernotes',
            'method' : 'getFilterData',
            'data'   :  del_id,
            'format' : 'raw'
        };
        jQuery.ajax({            
            data   : request,
            type   : 'post',
            success: function( response ) {
                console.log(response);
            }
        });
    })
});

得到它的工作! 不确定是什么使它起作用,因为我已经做了很多工作。

这是工作代码: jQuery请求

jQuery(document).ready(function(){
    jQuery('.trash').click(function(){
        var del_id= jQuery(this).attr('id');
        var toDelete = jQuery(this).parent().parent();
        console.log(del_id);
        jQuery.ajax({            
            url: "index.php?option=com_ajax&module=usernotes&format=json&Id="+del_id,
            success: function( response ) {
                console.log(response);
                if(response){
                    toDelete.slideUp("normal", function() { jQuery(this).remove(); } );
                }else{
                    alert("can't delete the row");
                }
            }
        });
    })
});

我的mod_usernotes.php

defined('_JEXEC') or die;
$user = JFactory::getUser();
$view = JFactory::getApplication()->input->get('view');
$articleId = JFactory::getApplication()->input->getInt('id');


if (!$user->guest && $view == "article") {

    require_once dirname(__FILE__) . '/helper.php';
    $helper = new modUserNotesHelper();
    require JModuleHelper::getLayoutPath('mod_usernotes');

    if (isset($_POST))
    {
        $post = $app->input->post->get('NoteForm', array(), 'array');
        $helper->CheckUserNote($post);
    }
    $helper->GetUserNotes();

}

我的助手

public static function getAjax()
    {
        $input = JFactory::getApplication()->input;
        $idToDelete  = $input->get("Id"); 

        $db = JFactory::getDbo();

        $query = $db->getQuery(true);

        // delete all custom keys for user 1001.
        $conditions = array(
        $db->quoteName('id') . ' = ' . $idToDelete
        );

        $query->delete($db->quoteName('#__user_notes'));
        $query->where($conditions);

        $db->setQuery($query);

        $result = $db->execute();

        return($result);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM