我在模塊中有三個下拉菜單。我想在我的joomla 2.5模塊中調用下拉onChange()事件的ajax。 國家,州,城市下降。用戶從第一個下拉菜單中選擇國家,當所有狀態結果顯示在第二個下拉菜單中時使用ajax。如何在joomla 2.5模塊中使用AJAX?
如何在joomla 2.5模塊中使用AJAX做到上述功能。
請幫幫我。
我在模塊中有三個下拉菜單。我想在我的joomla 2.5模塊中調用下拉onChange()事件的ajax。 國家,州,城市下降。用戶從第一個下拉菜單中選擇國家,當所有狀態結果顯示在第二個下拉菜單中時使用ajax。如何在joomla 2.5模塊中使用AJAX?
如何在joomla 2.5模塊中使用AJAX做到上述功能。
請幫幫我。
從模塊中沒有官方的方法來做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();
});