Forum Pplware
Formulário com Query (Dinamico) - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: Formulário com Query (Dinamico) (/showthread.php?tid=9103)



Formulário com Query (Dinamico) - EToS - 31-05-2011 17:34

Boa tarde

Estou a construir um formulário com estes campos:

Nome Da Obra
Nome do Artista
Upload Do Trabalho-Imagem Original
Upload Do Trabalho-Imagem Pequena
Descrição da Obra
Distrito
Curriculum Vitae - Resumido
Website
Metadados


E preciso de fazer primeiro uma verificação se o nome do artista já existe, caso exista não quero que apareça o campo Distrito e o WEBSITE.

Alguém me pode ajudar? Como faço isto com javascript ou ajax?
Com javascript que código devo usar?
Com Ajax que código devo usar?


Cumps.,

Obrigado.


RE: Formulário com Query (Dinamico) - Bruno Bernardino - 31-05-2011 17:53

Boas EToS,

Antes de mais, acho que deverias ler e compreender um pouco melhor sobre o que é JavaScript e AJAX, antes de começares a trabalhar em algo que não compreendes muito bem o conceito.

JavaScript é uma linguagem de programação que será interpretada pelo browser (client-side), pelo que nunca te deves fiar apenas no JavaScript, mas também em PHP, por exemplo (ou Perl, ou Python ou qualquer outra linguagem de programação server-side), pois o browser do cliente pode nem interpretar JavaScript.

AJAX é JavaScript assíncrono, ou seja, fazes um pedido e não ficas à espera que termine para poderes continuar a navegar/utilizar o site.

Dito isto, para utilizar JavaScript mais facilmente, deves considerar a utilização de uma framework, que já inclui vários tipos de comandos/funções que podes executar de forma fácil, como o jQuery.

Finalmente, tens exemplos de pedidos de AJAX através de jQuery aqui: http://api.jquery.com/jQuery.ajax/

Para saberes fazer aparecer/desaparecer campos, podes utilizar o .hide() e .show() de jQuery.

Isto serve?


RE: Formulário com Query (Dinamico) - Mettafox - 01-06-2011 12:35

Podes fazer a verificação de campos sem fazer reload da página usando o .ajax() em jQuery, é a mesma coisa que o XMLHTTPRequest em Ajax (Javascript).

Deixo aqui o excerto de como usar o .ajax() para o teu caso:
Não esquecer antes disto fazer as devidas verificações de campos vazios, etc
Citar:$.ajax({
type: "POST",
url: "pagina_verificacao_artista.php", // Aqui dentro desta página tens o devido código para fazer a verificação se existe ou não o artista (vai devolver algo como 1 e 2, 1 para existe, 2 para não existe)
data: "artista=" + $('#idCampoArtista').value(),
success: function(msg){
if(msg == 1){
$('#campoHide1').hide();
...
}
}
});


É impossível fazer isto sem uma linguagem de programação server side, pois não tens forma de aceder a uma base de dados via Javascript.

Deixo aqui um excerto em PHP, para caso seja esta a linguagem que estás a usar como server side e como consequente uma base de dados mysql:
Citar:<?php
$ligacao=mysql_connect("localhost", "user", "pwd") or die ("Erro ao ligar à BD");
mysql_select_db("minha_BD", $ligacao) or die ("Erro ao ligar à BD");


$artista=$_POST("artista");

$query=mysql_query("SELECT * FROM [tabela] WHERE artista='" . $artista . "'");

$resultado=mysql_fetch_assoc($query);

if(isset($resultado["artista"]) || $resultado["artista"] == ""){
echo 2; // Não existe
}
else{
echo 1; // Existe
}
?>



Eu não testei isto, portanto, pode haver a situação de teres de corrigir algo.
Mas mesmo que não uses os excertos que fiz, pelo menos ficas com a ideia de como terás de fazer para fazeres o que queres.