2013-04-15 65 views
1

我在模塊中有三個下拉菜單。我想在我的joomla 2.5模塊中調用下拉onChange()事件的ajax。 國家,州,城市下降。用戶從第一個下拉菜單中選擇國家,當所有狀態結果顯示在第二個下拉菜單中時使用ajax。如何在joomla 2.5模塊中使用AJAX?

如何在joomla 2.5模塊中使用AJAX做到上述功能。

請幫幫我。

回答

0

從模塊中沒有官方的方法來做ajax。
如果你在那裏開發一個組件,您可以打電話與 index.php?option=com_yourcomponent&task=getjsondata&view=yourview&format=json

這樣你的文件views/yourview/view.json.php將被稱爲有你的組件,你可以得到你的數據發送出去echo json_encode(array("success"=>true)); jexit() 請注意使用jexit() insted的Ø exit()

如果你真的需要從一個模塊做AJAX這裏是一個黑客在你的文件中導入的Joomla

<?php 
if (! class_exists('JFactory')) { 
    define('DS', DIRECTORY_SEPARATOR); 
    $rootFolder = explode(DS,dirname(__FILE__)); 
    $currentfolderlevel = 2; 

    array_splice($rootFolder,-$currentfolderlevel); 

    $base_folder = implode(DS,$rootFolder); 


    if(is_dir($base_folder.DS.'libraries'.DS.'joomla')) 
    { 
     define('_JEXEC', 1); 
     define('JPATH_BASE',implode(DS,$rootFolder)); 

     require_once (JPATH_BASE .DS.'includes'.DS.'defines.php'); 
     require_once (JPATH_BASE .DS.'includes'.DS.'framework.php'); 

     // Joomla is loaded! horray! 
     $email = JRequest::getVar('email'); 
     $tags = implode(",",JRequest::getVar('tags',array())); 

     $db = JFactory::getDbo(); 
     $db->setQuery("INSERT INTO `#__newsletter_users` (email,tags) VALUES('$email','$tags')"); 
     $db->query(); 

    } 
} 

?>

在您的模塊文件夾中創建一個類似上述文件(save_email.php)的文件並直接調用它。這是我的一個模塊模板:

$.get('<?php echo JUri::base()."modules/mod_newsletter/save_email.php?email=" ?>'+email, function(data) { 
    console.log(data); 
    modal.hide(); 
});