Assine os Feeds


Simulando AJAX?

fevereiro 6th, 2006

Antes do boom em torno do AJAX utilizava, e ainda utilizo, uma rotina em PHP (veja funcionando aqui), gerando código javascript visando:

  1. Evitar o refresh da página e a pesquisa ao banco de dados a cada digitação de um campo de uma tabela, para exibir a sua descrição ou uma mensagem de erro no caso de não existir;
  2. Carregar permissões de acesso, após o usuário se logar, em aplicações disponibilizadas na Web.

Citando um exemplo para clarear as idéias (assim espero):

Um aplicativo multiusuário que permite alterar, incluir e excluir dados, entre outras funcionalidades, relativos à uma determinada modalidade de contrato com vários termos (número dos contratos). Cada usuário tem o seu login e senha e são cadastradas as modalidades de contratos e os termos que podem ser manipulados por ele. Ao se logar no aplicativo estas informações são carregadas do banco de dados para uma ou mais matrizes (array’s) e, a partir daqui, toda a digitação feita nos campos modalidade e termo é checada diretamente no cliente via javascript, inviabilizando acessos a contratos não permitidos sem a necessidade de pesquisa ao banco de dados a cada transação, evitando, ainda, o refresh da página.

Note que nesse exemplo real é necessário a utilização de matrizes com 2 dimensões. A rotina apresentada neste post utiliza-se de matrizes 1 x n (vetor) e trabalha com a tabela wp_categories do VICHE. O código em PHP da rotina é apresentado abaixo e as explicações dos pontos chaves colocadas entre /* e */. O XHTML é simples e não será explicado aqui.

Não é recomendado utilizar esta rotina para carregar tabelas com muitos dados (já fiz uso em tabelas com 400 registros e funcionou muito bem).

/*

conexão e seleção do banco (mysql_connect e mysql_select_db)


*/

<head>
<? php
echo “<script type=\”text/javascript\”>\n”;

/*
Definição da função categorias com os parâmetros cat (o campo id_cat do formulário), i e j (id dos campos onde serão exibidas as informações do nome da categoria e da quantidade de posts. Veja a chamada utilizada no html do exemplo:

<input name=”id_cat” id=”id_cat” type=”text” size=”4″ maxlength=”4″ onblur=”categorias(this.value, ‘desc_categoria’, ‘num_posts’)” /><br />
*/

echo “function categorias(cat , i, j) {\n

/*
Definição das matrizes onde serão armezanadas as informações do nome da categoria e da quantidade de posts publicados
*/

var categoria = new Array();
var num_posts = new Array();\n”;

/*
Leitura da tabela wp_categories e alimentação das matrizes
*/

$SEL_categoria = mysql_query (’SELECT cat_ID, cat_name, category_count FROM wp_categories ORDER BY cat_ID’);
while ($rs = mysql_fetch_object($SEL_categoria)){
$cat_id = $rs->cat_ID;
$cat_nome = $rs->cat_name;
$num_posts = $rs->category_count;
echo ” categoria[$cat_id] = ‘$cat_nome’;\n”;
echo ” num_posts[$cat_id] = ‘$num_posts’;\n”;
}

/*
Crítica e display das informações nos campos correspondentes do formulário se informado corretamente. Caso contrário será exibida uma mensagem de erro.
*/

echo “if (categoria[cat]) { “;
echo ” document.forms[0].elements[i].value=categoria[cat];\n”;
echo ” document.forms[0].elements[j].value=num_posts[cat];\n”;
echo ” } else {”;
echo ” document.forms[0].elements[i].value=’Categoria não Cadastrada’;\n”;
echo ” document.forms[0].elements[j].value=”;\n”;
echo “}\n”;
echo ” document.forms[0].id_cat.focus();\n”;
echo ”
}\n”;
echo “</script>\n”
?>
</head>

Espero que tenham gostado e tenha alguma utilidade, apesar do uso cada vez mais frequente do AJAX, que ainda estou começando a aprender.

Artigos Relacionados:

Categorias: Javascript, PHP, Técnico

Imprima este artigo Envie este artigo para um(a) amigo(a) Adicionar ao del.icio.us Adicionar ao Linkk 4,069 Views



2 Comentários Adicione o seu

  • 1. Nei  |  agosto 7th, 2006 at 11:10:24

    Olá, estou procurando uma ferramenta em javascript parecida com essa: http://webfx.eae.net/dhtml/sortabletable/demo.html

    para utilizar junto com o ajax, algo que eu possa fazer paginação, ordenação através do javascript…

    sabe alguma solução para tal?

    obrigado

  • 2. Viche » Experimento&hellip  |  dezembro 24th, 2006 at 13:38:24

    […] Em fevereiro de 2006, quando ainda não conhecia nada de AJAX, escrevi o artigo Simulando AJAX?, onde usei PHP e JavaScript para criticar o preenchimento de um campo e exibir, quando correto, a descrição correspondente após a utilização da tecla Tab, sem o refresh da página. […]

Deixe seu Comentário

Obrigatório

Obrigatório, (não publicado)

São permitidas as seguintes tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed