it-swarm.it

Chiamata Ajax al componente dalla voce di menu

Io uso K2.

Ho una voce di menu che porta a una pagina che mostra introtext e piccole immagini degli ultimi 4 articoli di una categoria. Questo è impostato nei parametri della categoria e la voce di menu porta al layout della categoria. Vorrei visualizzare questo contenuto senza ricaricare la pagina.

Come posso fare una richiesta Ajax quando si fa clic sulla voce di menu in modo che questo contenuto venga aggiunto al seguente elemento?

<section id="ajax-content"></section>
3
web-tiki

Presumo che tu stia usando JQuery. Se stai usando Mootools fammi sapere e lo aggiornerò. La tua chiamata AJAX può assomigliare a questa:

        $.ajax({
           url : urlToSend,
           contentType : "application/json; charset=utf-8",
           type : 'get',
           cache : false,
           success : function(data) {
              successFunction(data);
           },
           error : function(data1, data2, data3) {

              alert(data3);
           }
        });

Naturalmente, cambia contentType in modo che sia quello di cui hai bisogno. Il tipo può anche essere "post", nel qual caso si desidera aggiungere un altro dato di parametro: your_data_to_be_passed_to_the_server,

Il tuo successo La funzione può apparire così:

     successFunction : function(data) {
         jQuery('#ajax-content').html(data);
      },

Oppure puoi semplicemente inserire jQuery ('# ajax-content'). Html (data); linea nella funzione di successo AJAX se la usi solo per questa chiamata.

5
bgies

Gestirai la maggior parte di questo nel tuo JavaScript.

In Joomla !, imposta una classe CSS personalizzata sulla voce di menu in questione. Questo viene fatto con l'opzione Collegamento Stile CSS nelle Opzioni del tipo di collegamento della voce di menu. Puoi quindi ascoltare un clic su quel link facendo riferimento allo stile che hai impostato nel tuo JavaScript. Ricorda di utilizzare event.preventDefault (); per assicurarti che la tua voce di menu non faccia ricaricare la pagina.

2
Zachary Draper