Esempio Online Anteprima
Sorgente PHP: examples/ajax/custom.php
Sorgente XML: examples/ajax/custom.xml
Le richieste per la lettura o modifica dei dati richiedono la presenza di un datasource perchè si ha la necessità di interfacciarsi con una sorgente dati, nel caso in cui però si voglia solo postare dei dati ed elaborarli è possibile utilizzare la modalità custom. La modalità con la quale si effettua una richiesta custom è presocché identica alle altre l'unica differenza è quella di non dover usare una delle seguenti parole chiave nel parametro data("loadall", "login", "changepasswd", "load", "update", "new", "delete", "deleteall", "store").
RICHIESTA(client)
AJAX.request('POST', 'mypage.php', 'data=myfunction¶m1=value1...¶mn=valuen', false, true);
AZIONE CUSTOM(server)
<?php
function myfunction()
{
global $event;
$code = "alert('OK');";
$event->returnRequest("", $code);
}
?>
<?php
/**
* PHP Source File
* @author Alyx Association <info@alyx.it>
* @version 1.0
* @copyright Alyx Association 2008-2010
* @license GNU Public License
*/
require_once("./../../class/system.class.php");
$system = new ClsSystem(true);
$xml = new ClsXML("custom.xml");
$event = new ClsEvent($xml);
$event->managerRequest();
function html_load()
{
global $event;
$code = "
function sendRequest(type)
{
var post = 'data=operation&type='+type;
post += '&number1='+$('number1').value;
post += '&number2='+$('number2').value;
AJAX.request('POST', 'custom.php', post, false, false);
}
";
$event->setCodeJs($code);
}
function operation()
{
global $event;
$code = "\n$('number1').value='".$_POST['number1']."';";
$code.= "\n$('number2').value='".$_POST['number2']."';";
switch ($_POST['type'])
{
case "addition":
$result = $_POST['number1'] + $_POST['number2'];
break;
case "subtraction":
$result = $_POST['number1'] - $_POST['number2'];
break;
case "multiplication":
$result = $_POST['number1'] * $_POST['number2'];
break;
}
$code .= "\n$('result').innerHTML='".$result."';";
$event->returnRequest("", $code);
}
?>
<?xml version="1.0" encoding="utf-8"?>
<jamp>
<page typeobj="page" title="JAMP - Esempio transazione AJAX personalizzata" icon="../../favicon.ico" loaddata="false">
<fieldset1 typeobj="fieldset" legend="Result" style="float: left; width: 200px; height: 90px;">
<number1 typeobj="text" label="number1: " value="5" minlength="1" maxlength="3" keypress="number" size="5" style="margin-left: 5px; font-weight: bold; font-size: 1em;" labelwidth="90px" />
<number2 typeobj="text" label="number2: " value="3" minlength="1" maxlength="3" keypress="number" size="5" style="margin-left: 5px; font-weight: bold; font-size: 1em;" labelwidth="90px"/>
<hr typeobj="hr" />
<result typeobj="label" label="result: " value="" style="margin-left: 5px; font-weight: bold; font-size: 1em;" />
</fieldset1>
<fieldset2 typeobj="fieldset" legend="Action" style="float: left; width: 150px; height: 90px;">
<button1 typeobj="button" value="Addition" onclick="javascript: sendRequest('addition');" style="width: 140px" />
<button2 typeobj="button" value="Subtraction" onclick="javascript: sendRequest('subtraction');" style="width: 140px" />
<button3 typeobj="button" value="Multiplication" onclick="javascript: sendRequest('multiplication');" style="width: 140px" />
</fieldset2>
</page>
</jamp>