joomla组件与jquery和ajax错误响应

时间:2013-04-27 17:05:01

标签: jquery joomla joomla2.5

如果没有AJAX,我会像这样输出错误(通常在控制器中):

JError::raiseWarning( 100, JText::_('COM_EXAMPLE_EXCEED_LIMIT') ); // or: jexit(JText::_('COM_EXAMPLE_EXCEED_LIMIT'));      
//then redirect them back to component
JFactory::getApplication()->redirect(JRoute::_('index.php?option=com_example'));

使用AJAX你不能这样做,因为它只是无法解析你发回的任何数据(在我的情况下是json)

jQuery.ajax({
    url: "index.php?option=com_example&task=add",
    dataType: 'json',
    data: dataString,
    success: function(data){
    //do stuff
    }
});

理想情况下,我想使用JError::raiseWarning,因为它很漂亮。但不确定这是可能的,因为那是服务器端,响应即将到来客户端?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您应该能够使用Javascript使用您的错误消息填充标识为system-message-container的元素。但是,如果模板使用覆盖,它可能会失败,具体取决于模板。

如果您确实需要来自JError的消息,则需要重新加载页面并在服务器端生成它。但AJAX的重点是你不重新加载页面: - )

另请注意,JError被贬低了。请改用$app->enqueueMessage('message', 'type')