출구로 이동하거나, 줌라 죽지 않는이 내 아약스 호출입니다! 이 물건을 다루는 좋은 방법이 있습니다.
아래의 답변은 Joomla!에서 테스트되었습니다! 2.5 & 3 (1.5로 작동 할 수도 있음).
일반 작업에 대한 귀하의 URL는 다음과 같이 할 필요가
:
index.php?option=com_similar&task=abc&format=raw
당신보다보기를 사용하는 컨트롤러를 생성,의는 ABC 방송을 가정 해 봅시다 이 파일에는 view.raw.html 파일 (일반보기 파일과 동일)이 들어 있습니다.
당신은 원시 HTML 응답을 생성하는 코드가 아래 :
/controller.php
public function abc()
{
// Set view
JRequest::setVar('view', 'Abc');
parent::display();
}
/views/abc/view.raw.php
<?php
defined('_JEXEC') or die;
jimport('joomla.application.component.view');
class SimilarViewAbc extends JView
{
function display($tpl = null)
{
parent::display($tpl);
}
}
을
/views/abc/tmpl/default.php
<?php
echo "Hello World from /views/abc/tmpl/default.php";
참고 :이 나는 (그것을 청소기의와 줌라 논리를 다음) HTML을 반환해야한다면 내가 사용하는 것이 해결책이다. 간단한 JSON 데이터를 반환하는 방법은 컨트롤러에 모든 것을 넣는 방법을 참조하십시오. 같은 당신이 subcontroller로 Ajax 요청을하면
, (원시 뷰) 당신의 subcontroller 이름보다
index.php?option=com_similar&controller=abc&format=raw
는 abc.raw.php
할 필요가있다.
즉, Abc라는 하위 컨트롤러가 2 개 있거나있을 수도 있습니다.
JSON을 반환하는 경우 format=json
및 abc.json.php
을 사용하는 것이 좋습니다. Joomla 2.5에서. 이 옵션을 작동시키는 데 몇 가지 문제가있었습니다 (어떻게 든 출력이 손상되었습니다). 그래서 raw를 사용했습니다.당신은 어떤을 반환합니다 (만약 당신이 모델을 호출 할 것이다 당신은 일반적으로 컨트롤러에이 코드를 넣어 것 문서 페이지 Generating JSON output
// We assume that the whatver you do was a success.
$response = array("success" => true);
// You can also return something like:
$response = array("success" => false, "error"=> "Could not find ...");
// Get the document object.
$document = JFactory::getDocument();
// Set the MIME type for JSON output.
$document->setMimeEncoding('application/json');
// Change the suggested filename.
JResponse::setHeader('Content-Disposition','attachment;filename="result.json"');
echo json_encode($response);
을 확인, 유효한 JSON 응답을 생성 해야하는 경우
인코딩하는 데이터 - 매우 일반적인 시나리오). 추가로 처리해야하는 경우 원시 예제와 비슷한 JSON보기 (view.json.php)를 작성할 수도 있습니다. 보안
이제 Ajax 요청이 작동하는지, 아직 페이지를 닫지 마십시오. 아래를 읽으십시오.
요청 위조 여부를 확인하는 것을 잊지 마십시오. JSession::checkToken()
이 여기에 편리합니다. CSRF anti-spoofing to forms
다국어 사이트를 추가하는 방법에 대한 설명서를 읽어
당신이 요청에 언어 이름을 전송하지 않는 경우, 줌라 원하는 언어 문자열을 번역하지 않습니다 발생할 수 있습니다 .
어떻게 든 lang 매개 변수를 요청에 추가하는 것을 고려하십시오 (예 : &lang=de
).
Joomla! - Joomla! Ajax Interface
이제 Joomla는 플러그인 또는 모듈에서 Ajax 요청을 처리 할 수있는 간단한 방법을 제공합니다. Joomla!를 사용하고 싶을 수도 있습니다. 이미 컴포넌트가 없거나 이미 가지고있는 모듈로부터 요청을해야하는 경우 Ajax 인터페이스.
"전체 페이지 인쇄 없음"이란 무엇을 의미합니까? 아무것도 인쇄하지 않으시겠습니까? 또한, 당신은 완전한 아약스 요청을 표시하지 않습니다, 그것은}}로 끝나야합니다; . –
스크린 샷을보세요. 이건 여기 중요하다고 생각하지 않기 때문에 나는 완전 아약스를 작성하지 않았다. – Jonuux
나는 예상되는 출력이 무엇인지 모르겠다. 어떤 일이 일어나야합니까? –