Congresso Internacional de Software Livre
Ajude a Combater o Spam! Clique aqui!
Galera, vai rolar em sampa o conisli(Congresso Internacional de Software Livre).
Do dia 9-11 de Setembro, num final de semana.
Muitas pessoas já confirmaram a presença como palestrantes e como congressistas.
Eu fui aceito como palestrante, sobre Tema de Zend Framework e PHP+AJAX. Vamos ver né?
Já preparei o documento do Zend Framework, agora do PHP+AJAX estou para começar.
E sem querer falar, mas está bem melhor do que do workshop de frameworks que participei.
Lista Brasileira de Equipamentos e Serviços Compatíveis com Linux
Ajude a Combater o Spam! Clique aqui!
Ajude a divulgar a lista brasileira de equipamentos e serviços compatíveis com Linux
…e concorra a MP4 e MP3 players, mochilas Targus, períodos de VoIP grátis e até a ventiladores USB - além de contribuir automaticamente para doações para a Wikipedia e o Wordpress! O BR-Linux coletou mais de 12.000 registros de compatibilidade de equipamentos e serviços (webcams, scanners, notebooks, …) na sua Pesquisa Nacional de Compatibilidade 2007, e agora convida a comunidade a ajudar a divulgar o resultado. Veja as regras da promoção no BR-Linux e ajude a divulgar - quanto mais divulgação, maior será a doação do BR-Linux à Wikipedia e ao Wordpress.
Google ajuda você a chegar nos USA
Ajude a Combater o Spam! Clique aqui!
Estou fazendo um projeto usando a API do Google Maps. E sem querer um amigo meu me passou uma ótima dica!
Como chegar de Belo Horizonte à Miami!
Saiba como chegar pelo google maps!
Use a barra lateral esquerda, e veja a dica de numero 43: Swim across the Atlantic Ocean 9,207 km
![]()
hauhahuauhauhauhuha ou traduzindo: Nade através do oceano atlântico 9,207 km
Cada vez mais o google me supera hehehehe
Desenvolver de graça? Não sou voluntario
Ajude a Combater o Spam! Clique aqui!
Primeira vez que participo de um meme, convidado pelo Cayo do yogodoshi.com/blog. Obrigado!
Você trabalha de graça? Depende, se for para uma instituição voluntária, se você estiver fazendo trabalho voluntário. Tudo bem.
Mas para por aí, né.
Posso dizer: nunca trabalhe de graça, até para amigo. A pessoa pode dizer ‘use de bom senso, quebra esse pra mim’? Que nada, no mundo dos negócios(chique né?!) você não deve dar tanto o braço a torcer.
Também não é para ser mercenário, seja honesto!
Mas se o cara for confiável e ele estiver zerado mesmo!?
Poxa, dê um crédito, mas não tanto!
Faça um pouco do trabalho, e peça uma porcentagem do orçamento total. Nem que seja 15%.
E lá vai aquela dica de sempre: “Tenha bom senso!”
Um certo livro diz que temos de ser ‘cauteloso como a serpente, mas inocente como a pomba’.
E você, como lidaria nessa situação?
PS: Quem quiser participar do meme, só dar um toque.
Engatinhando com AJAX e PHP. Parte 3
Ajude a Combater o Spam! Clique aqui!
Depois de um bom tempo estou aqui novamente!
Eu recomendo todos que não viram as partes um e dois do tutorial, que as veja.
Engatinhando com AJAX e PHP. Parte 1
Engatinhando com AJAX e PHP. Parte 2
Nessa 3ª parte, vamos ver como usar Requisição POST.
Vamos para o que interessa!
Criando nosso formulário
Vamos criar um formulário normal.
index.htm
-
<script src="../Ajax.js" type="text/javascript"></script>
-
<script src="postAjax.js" type="text/javascript"></script>
-
<form action="postAjax.php" onsubmit="enviaReq(); return false">
-
-
Entre com suas informações
-
-
Seu nome:
-
<input name="nome" type="text" />
-
Sua Cidade:
-
<input name="cidade" type="text" />
-
<input value="OKA!" type="submit" />
-
</form>
Aqui estamos linkando nossa biblioteca para criar nosso objeto XMLHttp. Caso você não esteja entendendo essa parte, recomendo você ler os dois primeiros artigos.
A unica coisa que é novidade, é o onSubmit alí. Quer dizer que quando o formulário for submetido, vai ser rodado uma função javascript ao invez de enviar diretamente o formulário. Depois é dado um return false para ter certeza que a página não dê refresh.
Requisição POST
A requisição post precisa ser enviada no formato, pelo cabeçalho http:
nome1=valor1&nome2=valor2&...&nomeN=valorN
para isso vamos criar a função que gere esse formato para nós.
Vamos chama-la de criaReqStr()
-
function criaReqStr(oForm){
-
var aPostStr = new Array();
-
-
for(var i = 0; i < oForm.elements.length; i++){
-
var sValor = encodeURIComponent(oForm.elements[i].name);
-
sValor += "=";
-
sValor += encodeURIComponent(oForm.elements[i].value);
-
aPostStr.push(sValor);
-
}
-
return aPostStr.join("&");
-
}
Essa função está assumindo que lhe será informada o objeto do formulário, como argumento. Um array(aPostStr) é criado para guardar cada par de nome-valor. Depois, conforme o numero de elementos do formulário, é concatenado o par nome-valor à variável aPostStr. No final do loop, é retornado a informação dos pares nome-valor corretamente.
Você pode se perguntar: Porque usar esse join() no final sendo que eu posso concatenar tudo direto?
Realmente, seria o mais lógico. Mas cada concatenação, em web-browsers, é muito pesada para o processo, então quanto menos você concatenar melhor.
Fazendo a requisição
Para isso, vamos criar a função enviaReq(), que é bem parecida com a função para a requisição GET.
-
function enviaReq(){
-
var oForm = document.forms[0];
-
var sBody = criaReqStr(oForm);
-
-
var oXMLHttp = criaXMLHttp();
-
oXMLHttp.open("post", oForm.action, true);
-
oXMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-
-
oXMLHttp.onreadystatechange = function (){
-
if(oXMLHttp.readyState == 4)
-
exibeResult(oXMLHttp.responseText);
-
else
-
exibeResult("Ocorreu um erro: " + oXMLHttp.statusText);
-
};
-
oXMLHttp.send(sBody);
-
}
Primeiramente ela seta a referencia do form numa variável(oForm). Depois recebe a string dos pares nome-valor pela função criaReqStr(), lembram?
Em seguida é instanciado o objeto xmlhttp pela função criaXMLHttp().
Depois que está o “tchan” do negócio, no método open() o primeiro parâmetro é “post”, qual requisição queremos fazer. O segundo parâmetro é a página que iremos enviar a requisição, que no caso é o atributo action do formulário. O terceiro parâmetro é true em caso de querer que a requisição seja assíncrona.
Depois é setado um cabeçalho de que a informação está codificada(urlencode). Importante, porque a maioria das linguagens server-side verifica essa codificação para o parsing da informação
Depois é só exibir o resultado no nosso div#divStatus pela função exibeResult():
-
function exibeResult(sTxt){
-
var divStatus = document.getElementById("divStatus");
-
divStatus.innerHTML = sTxt;
-
}
Simples não?
Agora vamos para a parte mais fácil: O server-side.
Criando nosso arquivo PHP
Ele é super simples, muito igual ao no caso da requisição feita pelo método GET.
postAjax.php
-
<?php
-
-
$sNome = $_POST[‘nome’];
-
$sCidade = $_POST[‘cidade’];
-
-
$sStatus = ”;
-
-
/* Exemplo com Banco de Dados MySQL */
-
-
$sStatus = ‘Informação inserida corretamente do banco de dados.’;
-
else
-
$sStatus = ‘Erro ao inserir informações no banco de dados’;
-
-
echo $sStatus;
-
?>
Você percebeu que mudamos o cabeçalho do arquivo para texto normal, usando a função header(). Depois só recebemos as variáveis pelo array global $_POST[].
Inserimos no banco de dados, e em caso de sucesso exibe a mensagem de sucesso. Em caso de erro(banco de dados com problema), exibe a mensagem de erro.
Baixando o tutorial
Para maior proveito do tutorial, baixe o tutorial agora:
post-ajax-php.zip
post-ajax-php.tar.gz
Nessa parte 3 fui bem mais direto ao ponto, agora que todo mundo já sabe o básico de AJAX com PHP né? hehehe
Mas é isso aí. Nas próximas versões do tutorial, vamos ver como fazer um validador de formulário conversando com banco de dados.
