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

时间:2018-07-25 19:10:58

标签: jquery ajax joomla

我正在尝试将 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);
            }
        });
    })
});

1 个答案:

答案 0 :(得分:0)

开始工作!不知道是什么使它起作用,因为我已经做了很多工作。

这是工作代码: 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);
    }