Kreatore.it

Sviluppo applicativi Lamp

Ajax e textpattern

Scritto da: | Categorie: ,

Decisamente più semplice di quanto possa sembrare, l’uso di Ajax in Textpattern è fattibile e porta ai risultati ottenuti senza necessariamente dover faticare.

Logicamente si ha la necessità di utilizzare un plugin, che contenga le funzioni php da eseguire in modo asincrono.
Per il collegamento tra frontend e backend sfruttiamo il framework Jquery.

Prepariamo quindi il codice html da usare:

<button value="valore">Testo</button>
<p class="risultato"></p>

Quindi creiamo la funzione di jquery che si occupa di inviare i dati e di stampare il risultato quando premo il bottone

 $(function() {
  $('button').click(function(){
   $.post('?mck_ajax=1',{value:$(this).val(),text=$(this).text(),extra=1},function(data) {
    $('.risultato').prepend(data);
   },'html');
  });
});

Per questa funzione uso il comando $.post cosi da pasare in modalita omonima i valori.
La funzione ha il seguente significato: $.post({url: url di chiamata, data: valori da passare, success: funzione da eseguire al successo della chiamata, dataType: tipo di dati restituiti});

Perchè tutto possa funzionare è necessario che textpattern legga la chiamata principale ?mck_ajax=1 e che richiami una funzione ad hoc.

Per fare questo possiamo sfruttare una dichiarazione standard di TXP di interfaccia pubblica, recuperare via GET il valore e chiamare la funzione:

// ----------------------------------------------------
// Public side tags
// ----------------------------------------------------
if (txpinterface == 'public'){
  if(gps('mck_ajax')==1) mck_ajax();
}

In questo modo siamo sicuri che la funzione mck_ajax venga attivata solo se siamo all’interno di TXP.
Le operazioni da eseguire in modo asincrono con php possono essere quelle che vogliamo, dobbiamo solo ricordarci che tipo di risultato stiamo stampando e che le variabili passate, in questo caso, sono tramite POST.
Altra cosa importante da ricordare è che dopo aver stampato i risultati bisogno assolutamente far morire il processo, cosi da non ritrovarsi a schermo tutte le altre funzioni interne di TXP.

function mck_ajax(){
  $t=ps('text');
  $v=ps('value');
  echo "Il bottone $t ha valore $v";
  die();
}
Tags: , , ,

Articoli Simili

Cerca per tag

admin, ajax, android, apache, app, audio, backup, beta, blog, bordi, browser, caffè, calcolo, calibre, categorie, cd, chrome, clienti, cloud, cms, condivisione, css3, csv, database, debian, desktop, download, drive, driver, dump, e-reader, evolution, file, firefox, flash, font, foto, freelance, funzioni, gd, gedit, gimp, htc, html5, iexplorer, immagini, indirizzo, inkscape, internet, ip, iphone, java, javascript, jquery, kivy, kv, less, lettura, link, linux, live, mac, macchina, mail, menu, mobile, mod, mp3, mysql, nautilus, network, newsletter, ombra, open office, opera, os, paypal, pdf, picasa, plugin, python, safari, skype, smartphone, smf, ssh, stampante, tabs, tag, tastiera, terminale, test, testo, textile, textpattern, theme, ubuntu, usb, video, web editor, website, windows, wysiwyg, xfce4, youtube

Cerca per categoria

© 2011 Kreatore.it :: Sito web realizzato da Marco Casalegno

TXP | Admin | Home | Back to Top

Tutte le informazioni e le immagini sono rilasciate sotto licenza secondo la Creative Commons License 2.0.