2013-04-27 3 views
0

나는 것 때문에 (보통 컨트롤러)와 같은 사용자에게 출력 오류 : 그것은 단지에 실패로의 joomla 구성 요소 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와 함께 당신이이 좋은 꽤 있기 때문에

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

이상적으로 나는 JError::raiseWarning을 사용하고 싶습니다 (내 경우 JSON에) 다시 보내는 어떤 데이터를 분석합니다. 그러나 그것이 서버 측이고 응답이 클라이언트 측에오고 있기 때문에 가능한지 확실하지 않습니까? 어떤 아이디어?

답변

0

Javascript를 사용하여 오류 메시지와 함께 system-message-container이라는 요소를 채울 수 있어야합니다. 그러나 재정의를 사용하면 템플릿에 따라 실패 할 수 있습니다.

JError와 같은 메시지가 정말로 필요한 경우 페이지를 새로 고침하고 서버 측에서 생성해야합니다. 하지만 AJAX의 요점은 페이지를 새로 고침하지 않는다는 것입니다 :-)

또한 JError는 depreceated입니다. 대신 $app->enqueueMessage('message', 'type')을 사용하십시오.

+0

팁 주셔서 감사합니다. 'system-message-container'는 매우 잘 알고 있습니다! 성공하면 JSON 오류 메시지를 표시하기로 결정했습니다. 가장 예쁜 것은 아니지만 나는 정말 우아한 방식이라고 생각하지 않습니다. – Tom