AJAX parts in plugs AJAX parts in plugs

HOWTO make AJAX-part in your plugin

In Seditio als je plug.php?r=yourplug aanroept, roep je een alleenstaand bestand van plugins/code/yourplug.php op zonder header/footer. In Cotonti is er niets gelijkaardig maar het is vervangen door een zogenaamd AJAX plugin-gedeelte.

Een AJAX-mode gedeelte van plugins zijn alleenstaand, zonder header/footer. Zij moeten "ajax" gebruiken als "hook" en opgeroepen worden als volgt: plug.php?r=yourplug welke op zijn beurt plugins/yourplug/yourplug.php of plugins/yourplug/yourplug.ajax.php of hoe je het ook noemd oproept.

Om een AJAX gedeelte te maken in je plugin, moet je het volgende doen:
  1. Maak een deel van de plugin, bijvb. my_plug.ajax.php (kan eender welke naam hebben).
  2. Zet Hook=ajax.
  3. Programmeer het zoals een normale plugin, maar hou in gedachte dat de header.php en footer.php niet aanroepen worden. Je kan er ook de HTTP headers zetten met de header() functie vooraleer er een output verzonden wordt.
  4. Gebruik het op deze manier: plug.php?r=my_plug

Dan kan je dit gedeelte aanroepen in andere delen. Hier is een voorbeeld van jQuery code:
$.get('plug.php?r=my_plugin', { id: 123, name: 'Peter' },
  function(data){
    alert("Data Loaded: " + data);
  });

Noteer dat wanneer je formulieren verzend met GET (soms) of POST (altijd), je het moet verzien met anti-XSS parameter x. Hier is een PHP voorbeeld van GET en POST:
$t->assign('MY_JS_FUNC', "$.get('plug.php?r=my_plugin', { id: $id, x: '" . sed_sourcekey() . "' },
  function(data){
    alert('Data Loaded: ' + data);
  });");
$t->assign('MY_JS_FUNC', "$.post('plug.php?r=my_plugin', { a: 'send', name: 'Peter', x: '" . sed_sourcekey() . "' },
  function(data){
    alert('Data Loaded: ' + data);
  });");

Als je een formulier moet verzenden van je document via AJAX, kan je de ajaxSend() functie gebruiken welke het automatisch samenvoegd:
ajaxSend({
url: 'plug.php?r=my_plugin',
method: 'POST',
formId: 'myformid'
})


Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям