+2

Desenvolvendo Aplicações AJAX com o framework SAJAX

criado por Benjamin Grando Moreira em 19/12/2005 4:26pm
A explicação do código está comentada. Não irei fazer nenhuma consideração a parte. Somente lembre-se que a classe "Sajax.php" vem disponível no pacote do SAJAX. Procure-a.

<?php
// Inclui a classe necessária do SAJAX
require("Sajax.php");

// Cria uma função que será utilizada posteriormente pelo AJAX
// Pode ser feito uma inclusão de um arquivo com as funções 
// necessárias sem problema
function multiply($x, $y) {
    return $x * $y;
}

// Instancia a classe do AJAX
sajax_init();

// Se essa variável for "setada", habilita a opção de debug
// Eu costumo não utilizar e faço o debug via alert
// Para debugar o sajax: 0 = desligado 1 = ligado
$sajax_debug_mode = 1;

// Declara as funções que serão utilizadas pelo AJAX
// Nessa exemplo apenas a função chamada multiply (definida logo acima)
// Pode ser enviada pela mesma função várias declarações de função. Ex: sajax_export("multiply", "addplay", "subplay", "divplay");
sajax_export("multiply");

// Declaração obrigatória
sajax_handle_client_request();
?>
<html>
<head>
<title>Multiplier</title>
<script>
<?php
// Declaração obrigatória também
// É ela quem escreve os códigos Javascript necessários a aplicação
// Lembre-se que ela deve estar dentro da tag <script>
sajax_show_javascript();
?>

// Para cada função criada no PHP é preciso fazer 2 funções no JS
// A primeira função é para tratamento dos dados vindo do usuário
// E a segunda é para tratamento do dado retornado pelo PHP
// Qualquer nome pode ser utilizado para essas funções, mas procure seguir um padrão

// Essa função é chamada quando se clica no botão "Calculate" da aplicação
function do_multiply()
{
    var x, y;
    
    // Pega o valor do id chamado x do formulário
    // Em seguida pega o valor do campo de id chamado y
    x = document.getElementById("x").value;
    y = document.getElementById("y").value;
    
    // Essa função é responsável por chamar a função do PHP e enviar os resultados
    // O nome da função deve sempre ter prefixo x_
    // Como nossa função se chama "multiply", o nome dela fica "x_multiply"
    // Os primeiros parametros enviados são os necessários pela função PHP
    // Nossa função precisa de 2: o valor de x e de y. Nossa função em PHP é: multiply($x, $y)
    // O último parametro é a função em JS que vai interpretar o resultado
    x_multiply(x, y, do_multiply_cb);
}

// Essa função é responsável por interpretar os resultados vindos do PHP
// Quem declara que é essa função que vai interpretar os resultados é a função "do_multiply"
// A função PHP possui um valor de retorno. Esse valor estará na variável "z" da função JS
function do_multiply_cb(z)
{
    // Atribui o valor do retorno do PHP ao campo de id chamado z
    document.getElementById("z").value = z;
}
</script>
</head>

<body>
<input type="text" name="x" id="x" value="2" size="3">
*
<input type="text" name="y" id="y" value="3" size="3">
=
<input type="text" name="z" id="z" value="" size="3">
<input type="button" name="check" value="Calculate"
onclick="do_multiply(); return false;">
</body>
</html>

Comentários:

Mostrando 1 - 10 de 25 comentários
Senhores,

Conheço um framework muito interessante chamado "Scriptcase", onde tem uma grande liberdade para programar, utilizando eventos tanto em javascrit, php, AJAX, e agora com a utilização do Jquery. e a utilização de SAJAX

É um ambiente completo de desenvolvimento de aplicações Web em PHP com uso da tecnologia AJAX. O desenvolvimento é feito diretamente no browser, permitindo integração da sua equipe além de possibilitar o desenvolvimento colaborativo.

Suporta os Bancos de Dados mais usados no mercado (Oracle, DB2, MS SQLServer, MySQL, PostgreSQL, Sybase, MS Access, etc) e as aplicações geradas são totalmente independente da ferramenta, sendo compatíveis com Windows, Linux, AS/400 entre outros.

O ScriptCase permite criar novos sistemas ou agregar aplicações WEB a sistemas já existentes. Para o usuário profissional, o ScriptCase permite a programação avançada (regras de negócio), permitindo até a criação de sistemas complexos. Para o usuário final, devido a facilidade de manuseio - o ScriptCase requer apenas conhecimento básico de SQL - torna-se forte gerador de relatórios e consultas em diversas saídas, destacando-se os formatos PDF, XLS e RTF.


http://www.netmake.com.br/
22/04/2010 10:40pm (~14 anos atrás)

Gostaria de saber se alguem sabe alguma forma de eu ter uma variavel q não recarregue toda vez q eu chamar uma função, +- assim tenho uma função q toda vez q euchamo ela eu informoum novo valor a ser add num array, cada vez q eu chamar essa função e cria um novo indice no array mas mantendo os valores antigos do array, para somente no final dos meus processos eu utilizar o array num submit normal.

não sei se fui claro o suficiente mas acho q da pra entender o q eu preciso
19/11/2007 5:08am (~16 anos atrás)

Ja fiz uns 5 projetos usando AJAX , mas todos eu fiz na mão , nunca usei framework , agora fica a duvida , como eu passo o dados de um form para um banco de dados ? nao adianta falar que eu pego usando document.getElementById e passo os dados pelo ajax.open() e ajax.post() ..quero algum codigo fonte que use formluario e utilize o framework Sajax
05/10/2006 10:02am (~17 anos atrás)

Alguem sabe ou já tentou fazer essas funções do php estarem dentro de uma classe...

+- assim o javascript chamar um objeto de uma classe php????

se for possivel alguem sabe me dizer se é vantagem ou não utilizar esse recurso dessa maneira????
10/08/2006 10:15am (~17 anos atrás)

Roda sim. O que precisa para rodar é de um interpretador como o PHP.
08/06/2006 7:04pm (~18 anos atrás)

Miro Batista disse:
O Sajax roda com IIS?
08/06/2006 8:41am (~18 anos atrás)

Qual seria a melhor opção SAJAX ou XAJAX usando o Smarty?
10/05/2006 7:08am (~18 anos atrás)

Muito bom o Artigo.
Podeira mostrar um outro exemplo com Smarty?

Flw!
10/05/2006 7:06am (~18 anos atrás)

Olá pessal, blz?

Estou com um problema, quando chamo uma aplicação feita com Sajax, passando por parametro alguma variável(principal.php?/id_menu=teste_ajax), não obtenho o valor de retorno da minha função. Com este id_menu, eu chamo a aplicação teste_ajax.php. Fiz alguns testes, e se eu simplesmente chamo a aplicação sem passar parametros, dá certo.
Alguem tem alguma sugestao?
25/03/2006 4:46am (~18 anos atrás)

function do_Teste_cb() {
setTimeOut('do_Teste',1000)
}
function do_Teste() {
x_Teste('',do_Teste_cb);
}
do_Teste();
24/03/2006 9:45am (~18 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)