2012-10-30 3 views
3

나는 AJAX를 잘 이해하고 정상적으로를 사용하여 아무런 문제가 없을 것입니다하지만 난 구성 요소를 만든AJAX 함수 호출

등, 줌라 비교적 새로운 오전 및 최근 건물 구성 요소를 시작했습니다 (명명 된 디렉토리) '기본'보기를 사용하고 있습니다. 여기에서 나는 AJAX 호출되는 다음과 같은 코드를 가지고 :

그리고 현재 다이를 너무 포함하는 다음 함수를 만든 내 '보기/디렉토리/views.html'파일 내에서

<script type="text/javascript">       
var url = "index.php?option=com_directory&view=directory&task=clubFilter&format=raw"; 
jQuery(document).ready(function() { 
    jQuery('#city').change(function() {   

     jQuery.ajax({ 
      url: url, 
      type: "POST", 
      data: jQuery("#city").serialize(), 
      dataType: 'json', 
      success: function(data) { 
       alert('data'); 
      } 
     }); 
    }); 
}); 
I 이 작업을 할 때 확인할 수 있습니다

public function clubFilter() { 
     die(print_r('here_i_am')); 
    } 

을 나는 다음과 같은 코드를 실행하면 I GE Firebugs 콘솔 내에서 다음과 같은 오류 ..

'Error: 500 View not found [name, type, prefix]: directory, raw, directoryView' 
,

나는 그것이 AJAX url var가 잘못 되었기 때문에 생각한다. 그러나 나는 다른 곳에서 많은 다른 솔루션을 시도해 보았고 AJAX 기능을 작동시키지 못했다. 내 URL이 잘못 되었나요? 많은 감사합니다

+0

이 자습서 또한 도움이 될 것입니다. http://docs.joomla.org/Adding_AJAX_to_your_component – Irfan

답변

5

일반적으로 컨트롤러에서 작업에 대한 ajax 호출을합니다. 나는 작업으로 같은 이름을 가진 함수를 넣어 내 구성 요소의 기본 컨트롤러,

index.php?format=raw&option=<component_name_goes_here>&task=<task_goes_here> 

다음 : 여기

는 구성 요소에 아약스 호출을 사용하여 내 확장 중 하나를 사용하고있는 URL 형식입니다 :

function getSomeData() 
{ 
    echo(json_encode($data));//I normally return json 
} 

희망이 있습니다.

+0

안녕하세요. 당신의 도움을 주셔서 감사합니다. 불행히도 그 문제를 해결하지 못했습니다. 그것은 여전히 ​​그것이 내가로드하려고하는 컨트롤러이기 때문에 기괴한보기를로드 할 수 없다고 말한다! – devoncrazylegs

+0

로드하려는 URL은 무엇입니까? –

+0

이것은 AJAX 호출을 시작하는 링크를 클릭하면 방화 광 콘솔에 표시된 정확한 URL입니다. index.php? format = raw & option = com_directory & task = clubFilter – devoncrazylegs

3

이 URL을 시도하십시오. 그것은 당신을 도울지도 모른다. 그렇지 &tmpl=component

이 너무 아래의 형식을 시도 할 수 있습니다와

var url = "index.php?option=com_directory&view=directory&task=clubFilter&tmpl=component"; 

format=raw

교체.

jQuery.post('index.php',{ 
         'option':'component_name', 
         'controller':'controller_name', 
         'task':'task_name', 
         'format':'raw',     
         'data': jQuery("#city").serialize(), 
         'dataType': 'json', 
       },function(result){      
         //edit the result here 

        return; 
     }); 

이 문제와 관련하여 궁금한 점이 있으시면 언제든지 문의하십시오.

+0

위의 해결되었지만 이것이 나에게 유용합니다! – devoncrazylegs