| |
|
Abril 27, 2007 on 1:21 pm | In Informatica, php, JavaScript, JQuery, AJAX |
Irei falar sobre método de envio e recebindo através de um form sem dar reload em uma página usando o framework JQuery.
Primeiro criamos o formulário:
HTML:
-
form method="post" id="form" action="starterkit.php">
-
<table width="49%" cellspacing="0" cellpadding="0" border="0">
-
-
<td style="width: 33%"><span class="nome">
-
-
<td style="width: 67%"><input type="text" id="nome" name="nome" /></td>
-
</tr>
-
-
-
<td><input type="text" id="Apelido" name="Apelido" /></td>
-
</tr>
-
-
-
<td><input type="text" id="site" name="site" /></td>
-
</tr>
-
-
<td><input type="submit" class="envio" value="Enviar" id="submit" name="submit" /></td>
-
<td><span id="loading"><img alt="Ajax Indicator" src="http://rafaelcunha.com/indicator.gif" /></span> <span id="result" /></td>
-
</tr>
-
</table>
Utilizamos então o método de POST do JQuery para pegar os valores e enviar para um arquivo externo no caso o 'recebe.php':
JAVASCRIPT:
-
$('input.envio').click(function() {
-
$('#loading').show();
-
$.post('recebe.php',{
-
nome: $('#nome').val(),
-
Apelido: $('#Apelido').val(),
-
site: $('#site').val()
-
},function(response){
-
// resposta
-
$('#result').fadeOut();
-
setTimeout("finishAjax('result', '"+escape(response)+"')", 400);
-
-
})
-
-
return false;
-
});
Comentários sobre o código:
Quando recebe o click no input classe envio. Ele mostra a div id=loading e depois chama a função de .POST do modulo de AJAX do JQuery.
Logo em seguida ele atribui para valor nome: o valor pego do input id=nome ( $('#nome').val(); e faz o mesmo com todos aqueles valores que irão ser passados por POST para o arquivo recebe.php.
Ele chama a função response que na verdade é a resposta enviada do arquivo recebe.php. No nosso caso se a resposta por 'positiva' mostraremos o dados enviados na tela. Para isso dou settimeout para esperar um pouco e chamo a função finishAjax, passando dentro dela dois valores, o ID onde colocarei o resultado e o resultado de resposta do arquivo recebe.php
JAVASCRIPT:
-
function finishAjax(id, response) {
-
$('#loading').hide();
-
$('#'+id).html(unescape(response));
-
$('#'+id).fadeIn();
-
if (response == 'Inserido'){
-
$('#todos').fadeOut();
-
$('#nome').val('');
-
$('#Apelido').val('');
-
$('#site').val('');
-
$.post('envia.php',{
-
nome: ''
-
},function(response){
-
// resposta
-
$('#todos').html(unescape(response));
-
$('#todos').fadeIn();
-
-
})
-
}
-
}
Comentário sobre o código acima:
A função testa se a resposta foi 'Inserido' (caso positivo do recebe.php), nesse caso ele atribui a cada valor do formulário o valor vazio com o método $('#nome').val(''); e depois chama o método POST de novo, para enviar e receber os dados necessário para imprimir na tela os valores enviador pelo formulário que ja estão gravados no banco.
Na resposta eu recebo ja os valores de modo que é so fazer a impressão na tela.
Para fazer impressão eu uso o metodo html.(unescape(RESPOSTA)) do JQuery. Escrevo a resposta no span id='todos'.
Recebe.php:
PHP:
-
if (isset($_POST['nome'])){
-
$nome = $_POST['nome'];
-
}
-
if (isset($_POST['Apelido'])){
-
$Apelido = $_POST['Apelido'];
-
}
-
if (isset($_POST['site'])){
-
$site = $_POST['site'];
-
}
-
$query= mysql_query("INSERT INTO Envio_dados (nome,tel,site) VALUES ('". $nome. "','". $Apelido. "','". $site. "')");
-
if ($query)
-
-
else
-
echo 'Erro na inserção!';
Envia.php:
SELECT em todos dados da tabela e monta uma tabela de saído com echo. A saída sera exatamento como você formatou este arquivo. Eu não sei porque mas deu problema aqui no blog e não esta mostrando a saída deste arquivo. ;/
Para ler mais sobre as funções e metodos do Jquery so ler a documentação. Para ver o exemplo deste script va em Script Teste.
E é so isso pessoal, dúvidas é comentar... Espero que esse script sirva de inspiração para o uso do JQuery... Até a próxima
RSS feed for comments on this post.
TrackBack URI
|
|
|
|
|
O kra. Tipow eu não toh entendendo onde que vai cada script no código. Acho que você deveria ser mais claro quanto a isso ou disponibilizar o download do arquivo para quem não sabe aprender onde fica cada código.
Comment by Julian Silva — Maio 20, 2007 #
Vamos la...
Veja o script em http://www.rafaelcunha.com/testes/starterkit.php e veja depois o código fonte, você verá todo o script do JQuery e o formulário, o outros são arquivos externos chamados, envia.php e recebe.php
Colocado o arquivo para download.
Abraços
Comment by silici0 — Maio 20, 2007 #
[...] A pedidos estou disponibilizando o download dos arquivos do post : Ajax + Jquery = Facilidade para que possam identificar melhor os script escritos no tutorial. Basta clicar no link abaixo para fazer o download dos arquivos. AJAX+JQUERY1 [...]
Pingback by Silici0 :: My LiFe :: » Ajax com JQuery : Download — Maio 20, 2007 #
Vlw kra. Seu blog tem muitas matérias boas.
Comment by Julian Silva — Maio 20, 2007 #
Obrigado e boa diversão.
Comment by silici0 — Maio 20, 2007 #
Uma unica coisa, como eu faria para apenas imprimir os echos do recebe.php, e não a tabela.
Comment by Julian Silva — Maio 21, 2007 #
Tabela so tem no arquivo envia.php
Se você quiser imprimir os echo, basta tirar as TAG html e retirar toda a tabela e colocar os echo $dado.'';
So mude esse arquivo e rode para testar a saída, acho que você ira compreender melhor depois do retorno dos dados.
Abraços
Comment by silici0 — Maio 21, 2007 #
Você diz retirar o segundo javascript? Eu já vih que ele imprime um dos echos caso de erro no mysql. Se eu retirar o segundo javascript que é o que fazer o puxa o envia.php. Tentei fazer mais ele para, não imprime nada. Queria apenas que imprime-se o resultado do mysql.
Comment by Julian Silva — Maio 21, 2007 #
A função que escreve é o $('#'+id).html(unescape(response));
Da uma olhada no manual, sobre cada função, melhor para você entender todo funcionamento do script.
Abraços
Comment by silici0 — Maio 21, 2007 #
Olá Rafael, gostei do seu blog.
Conteúdo bem interessante, vou aparecer por aqui sempre.
Abraço!
Comment by Renato Carvalho — Maio 24, 2007 #
Obrigado...
Apareça sim... sua visita é importante para min...
Abraços
Comment by silici0 — Maio 24, 2007 #
Muito legal o blog, parabéns.
Comment by Gustavo — Junho 18, 2007 #
Obrigado...
Espero que esteja sempre por aqui...
Abraços
Comment by silici0 — Junho 18, 2007 #
olá Rafael! Estou utilizando seu exemplo junto com o jqModal para mostrar meus formulários em janelinhas, mas mesmo seguindo todos os seus passos, não consigo o efeito esperado. Meu formulário é submetido, como se não ouvesse evento nenhum associado ao botão submit... então o script ajax não é chamado...
Será q vc poderia me ajudar?
Obrigado!
Comment by Junio — Julho 17, 2007 #
Posso sim, mas seja mais especifico ou me adicione ao msn rafcunha@terra.com.br
Abraços;
Comment by silici0 — Julho 17, 2007 #
Cara, muito bom seu texto.
Muito bem explicado. Comecei a usar Jquery ontem e já consegui rodar meu form de login usando seu exemplo como base.
E olha que eu to usando Django(framework Python).
Valeu, Valeu, Valeu, Valeu...
I'm so happy rigth now!!!
Comment by Andre — Agosto 9, 2007 #
Legal, continue assim...
Isso que gera o animo para escrever melhor e novos tutoriais.
Abraços
Comment by silici0 — Agosto 9, 2007 #
Singulair (montelukast).
Singulair (montelukast).
Trackback by Singulair (montelukast). — Setembro 22, 2007 #
Simples e claro.
Só gostaria que você disponibilizasse tudo junto. Vou fazer a minha parte então:
http://dimasgomez.homedns.org/exemplos/jquery_ajax_facilidade_zip.zip
Dividi os arquivos em pedacinhos de código: js, css, php, inc (phps muito utilizados, essenciais) e bib (arquivos de biblioteca, pra serem usados quando for interessante).
Espero que a estrutura seja útil pra alguém.
Abraço,
Dimas Gomez.
Comment by Dimas Gomez — Abril 5, 2008 #
Olá parabém pelas excelentes matérias, fantásticas site nos meus favoritos
Uma questão:
em localhost não imprime o envia.php, tem alguma coisa haver?
um abraço
Comment by nuno — Abril 10, 2008 #
Não tem nada a ver... tem certeza que está chamando o JQuery (framework) junto ?
Pois o envio depende dele, se quiser para ajudar um alert() com retornos para debugar sempre é bom.
Abraços
Comment by silici0 — Abril 10, 2008 #
Olá obrigado pela resposta, curiosamente os teus e os colega que disponibilizou também os ficheiros tem esse problema, estranho, mas não me vou chatear com isso, sim claro que chamei framework antes
não sou propriamente um newbee
um abraço e parabéns mais uma vez! Grande blog!
Comment by nuno — Abril 10, 2008 #
Na verdade o script esta com um erro, deve ser arrumado, se vc entendeu o funcionamento vai ser facil achar o problema... leia os coments.
abraços
Comment by silici0 — Abril 10, 2008 #
qual "coments" os do código ou do blog?
um abraço
Comment by nuno — Abril 11, 2008 #
alert(response) Debuga ele... hehehe
Abraços
Comment by silici0 — Abril 11, 2008 #
oh nice ok obrigado bom trabalho
um abraço
ah e diariamente vou passando aqui
Comment by nuno — Abril 11, 2008 #
mais uma vez eu, alert(response) INSERIDO
sabes ele insere bem mas só não retorna aquela tabela com os dados, ou seja o envia.php penso eu, ela está funcionar bem já a testei fora e está cool.
Para ser sincero só a pouco tempo mexo com o jquery.
php e sql sem problemas mas jquery faço questão de entender visto que todos postam de forma diferente, o que não deixa de ser normal, todos nós programamos de forma diferente
Um abraço mais uma vez e se poderes ser mais claro no que poderá estar acontecer agradecia Alexandre.
jquery 1.2.3
Fire 2x
IE7
Wamp server php 5.2x
Apache 2x
Comment by nuno — Abril 11, 2008 #
Rafael queres indicar o caminho a seguir para detectar o erro?
ou pelo menos podes fornecer o que está on-line esse funciona, para eu poder analisar e detectar o erro que referiste!
acho que fiz tudo certinho com o php, mas...
Obrigado
Comment by Anonymous — Abril 24, 2008 #
docs.jquery.com
Veja o funcionamento das funções usadas.
Abraços
Comment by silici0 — Abril 24, 2008 #
Acomplia.
Acomplia. Acomplia rimonabant.
Trackback by Acomplia. — Abril 29, 2008 #
[...] A pedidos estou disponibilizando o download dos arquivos do post : Ajax + Jquery = Facilidade para que possam identificar melhor os script escritos no tutorial. Basta clicar no link abaixo para fazer o download dos arquivos. AJQDownload Dúvidas é comentar. Abraços e boa diversão. [...]
Pingback by UniGame» Arquivo do Blog » Ajax com JQuery : Download — Agosto 24, 2008 #