Jump to content

[PHP] Sajax


QuickFire

Recommended Posts

Depois de alguma pesquisa sobre AJAX na web encontrei um framework que facilita a vida de qualquer webmaster. Chama-se Sajax.

Este framework dá para trabalhar em inúmeras aplicações entre elas: PHP, ASP, Cold Fusion, Pytho, Perl, entre outros... Para mais informações sobre Sajax vão ao site http://www.modernmethod.com/sajax/

Bem começemos agora a parte 1 do nosso pequeno tutorial.

Vai consistir basicamente em criar uma calculadora para multiplicar. Espantoso dizem vocês. Mas com esta calculadora vão puder fazer tudo e mais alguma coisa se tiverem imaginação.

Então para isto precisamos do ficheiro 'Sajax.php' que facilmente encontram no site acima e aqui vai o código devidamente comentado:

<?php
// Incluir o Sajax
require("Sajax.php");

// Criar uma função que vai ser utilizada pelo Sajax (podem também incluir um ficheiro com várias funções sem ter de a criar agora)

function multiply($x, $y) { 
//Função que vamos usar para multiplicar
    return $x * $y;
}

// Instancia à classe do AJAX
sajax_init();

// Este é o debug mode, quando ligado (1) ele diz-nos todas as informações e mais algumas, é porreiro quando estamos a desenvolver, quando acabar o desenvolvimento desligam(0)
$sajax_debug_mode = 1;

// Declara a função que vai ser utilizada pelo Sajax (neste caso é a função que temos em cima)

sajax_export("multiply");

// Declaração obrigatória
sajax_handle_client_request();
?>
<html>
<head>
<title>Calculadora de multiplicar</title>
<script>
<?php
// Declaração obrigatória, serve para criar os códigos necessários de javascript
sajax_show_javascript();
?>

// Para cada função criada no PHP é preciso fazer 2 funções no Javascript, sendo que a primeira trata os dados vindos do utilizador, e a segunda trata os dados returnados pelo PHP

function do_multiply()
{
    var x, y;
    
    x = document.getElementById("x").value;
    y = document.getElementById("y").value;
    
    // Função responsavel por enviar os dados ao PHP, esta tem de ter o prefixo de 'x_' (sem plicas), logo como a nossa função se chama 'multiply', esta vai ficar 'x_multiply'

    x_multiply(x, y, do_multiply_cb);
}

// Função responsavel por intrepretar os dados vindos do PHP, neste caso dá o valor returnado ao text input z

function do_multiply_cb(z)
{
    // Atribui o valor do retorno do PHP ao campo de id chamado z
    document.getElementById("z").value = z;
}
</script>
<!-- Analytics -->
<script type="text/javascript">
 var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-31683991-1']);
 _gaq.push(['_setDomainName', 'portugal-a-programar.pt']);
 _gaq.push(['_trackPageview']);
 (function() {
   var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
   ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
   var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 })();
</script>
<!-- /Analytics --><!-- Analytics -->
<script type="text/javascript">
 var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-31683991-1']);
 _gaq.push(['_setDomainName', 'portugal-a-programar.pt']);
 _gaq.push(['_trackPageview']);
 (function() {
   var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
   ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
   var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 })();
</script>
<!-- /Analytics --><!-- Analytics -->
<script type="text/javascript">
 var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-31683991-1']);
 _gaq.push(['_setDomainName', 'portugal-a-programar.pt']);
 _gaq.push(['_trackPageview']);
 (function() {
   var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
   ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
   var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 })();
</script>
<!-- /Analytics --></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> 

E pronto, básicamente é só isto. Vão 'brincando' com o código e vão ver resultados surpreendentes.

Cumprimentos

Link to comment
Share on other sites

  • 9 months later...

Um parece ser uma framework muito interessante... sera que tb ha para JSP/Struts ? e que ainda nao e simples nem escalavel programar Ajax lah.. (pelo menos que eu saiba)

https://ajax4jsf.dev.java.net/nonav/ajax/ajax-jsf/

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.