2012-10-30 122 views
3

我有AJAX有很好的理解,通常會使用它都沒有問題,但我是比較新的Joomla和最近纔開始建築構件等AJAX函數調用

我創建了一個組件(命名目錄),它使用'默認'視圖。在這裏我有下面的代碼是一個AJAX調用:

<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'); 
      } 
     }); 
    }); 
}); 

而我的意見/目錄/ views.html「文件中我已經創建了下面的函數,它目前包含了一個模具,使我可以確認在工作時:當我運行下面的代碼

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

我GE Firebugs控制檯中出現以下錯誤..

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

我認爲這是因爲AJAX的url var是不正確的,但我已經嘗試了很多不同的解決方案,從這裏沒有其他來源,只是無法獲得AJAX功能的工作。我的網址錯了嗎? 非常感謝

+0

本教程也將有所幫助:http://docs.joomla.org/Adding_AJAX_to_your_component – Irfan

回答

5

通常,我會對控制器上的任務進行ajax調用。

這裏是URL格式我用我的擴展一個使用AJAX調用的組件:

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

然後,在我的組件的默認控制器我把一個函數具有相同的名稱作爲任務:

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

希望這會有所幫助。

+0

嗨#。謝謝你的幫助。不幸的是,這還沒有解決問題。它仍然說,它不能加載視圖這是奇怪的,因爲它是我想加載的控制器! – devoncrazylegs

+0

它試圖加載什麼網址? –

+0

這是我點擊啓動AJAX調用的鏈接時在螢火蟲控制檯中顯示的確切網址。 index.php?format = raw&option = com_directory&task = clubFilter – devoncrazylegs

3

試試這個網址。它可能會幫助你。

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

format=raw更換&tmpl=component

否則你可以試試下面的格式了。

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