2013-04-15 4 views
1

J'ai trois déroulant dans mon module. Je veux appeler l'ajax sur l'événement onChange() dans mon module joomla 2.5. Pays, État, Ville sont déroulants. l'utilisateur sélectionne le pays depuis le premier menu déroulant lorsque tous les résultats s'affichent dans la seconde liste déroulante en utilisant ajax.Comment utiliser AJAX dans le module joomla 2.5?

Comment faire ci-dessus la fonctionnalité en utilisant AJAX dans le module joomla 2.5.

S'il vous plaît aidez-moi.

Répondre

0

Il n'y a pas de façon officielle de faire de l'ajax à partir d'un module.
Si vous où développer un composant que vous pouvez appeler votre composant avec index.php?option=com_yourcomponent&task=getjsondata&view=yourview&format=json

De cette façon, votre fichier views/yourview/view.json.php serait appelé et là, vous pouvez obtenir vos données les envoient echo json_encode(array("success"=>true)); jexit() s'il vous plaît noter que l'utilisation de jexit() insted o exit()

Si vous avez vraiment besoin de faire ajax d'un module est ici un hack pour importer joomla dans vos fichiers

<?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(); 

    } 
} 

?>

Créez un fichier comme celui-ci (save_email.php pour moi) dans votre dossier de module et appelez-le directement. Voici un morceau de mon modèle de modules:

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