Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Junior99

[Resolvido] Validacao e insercao de campos textos dinamicos

Recommended Posts

Pessoal...

 

Estou montando um formulario onde possui uma tabela com campos do tipo Texto que monto dinamicamente conforme configuracoes do cliente selecionado.

 

EX:

 

Cliente Xpto

 

Tarifas

Limpeza - R$

Lavacao - R$

Escovacao - R$

Impermeabilizacao - R$

 

 

Como poderia fazer para checar se todos os campos de valores foram preenchidos e como podeira fazer para gravar o respectivo valor de cada tarifa....

 

Estou com muita dificuldade em fazer isto. Agradeceria muito a ajuda dos colegas....

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem... você pode verificar se todos os campos foram preenchidos na hora de clicar no botão gravar/alterar.

 

você chama uma função javascript que vai ver se o campo está em branco.

 

if(document.form.nomeCampo.value == "") {
alert("O campo nomeCampo não pode estar em branco. Preencha algum valor");
document.form.nomCampo.focus();
return true;
}

você faz isso com todos os campos do seu form. Aqueles que estiverem em branco serão alertados.

 

Passando pelas validações, você dá o submit na pagina, e usa o request("nomeCampo") para recuperar a informação enviada e gravar no banco.

 

strSQL = "INSERT INTO nomTab (campo) VALUES("&request("nomeCampo")&")"

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, mas no seu exemplo os nomes dos campos estao fixos. No meu caso, cada campo terah um nome especifico

EX:<input name="text_<% =RecordSet("codigo") %>>"

 

Pois dependendo de cada "cliente", o mesmo podera possui n tarifas.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque o <input name="text_<% =RecordSet("codigo") %>"> por um contador:

 

<input name="text_<%=cont%>"> ficando no form depois de processado da seguinte maneira:

 

<input name="text_1">

<input name="text_2">

<input name="text_3">

 

Entao no JavaScript você faz um for pegando os valores do seus text_... e vendo se eles estão em branco. Pra verificar, você pega a ultima posição do nome do seu text_ pois será um numero. No for o i vai ser incrementado a cada volta, daí é so concatenar e ver.

Armazene num hidden o valor da quantidade de registros, pra você usar no for.

 

No insert a mema coisa, faz um for e no request use: request("text_"&i).

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar os campos de forma dinâmica via ASP e controlá-los via JS com um código como esse...

 

ASP

<%
...
Do Until rs.EoF%>
		<input type="text" name="<%=rs("codigo")%>">
		rs.moveNext
Loop%>
<input type="text" name="SID" value="<%=Session.SessionID%>">

JS
...
var txt = document.getElementsByTagName('input')
for(var i=0; i<txt.length; i++){
		if(txt[i].value == ''){
				alert('O campo ' + txt[i].name + ' é de preenchimento obrigatório');
				return;
		}
}
//aqui você faz o submit do form
form.submit();

Voltando pro ASP, você "pega" os campos assim...

 

ASP

If Request.Form("SID") <> Session.SessionID Then Response.End

For each Field in Request.Form
		Response.Write Request.Form(Field) & "<br>"
Next

Por uma questão de segurança, é interessante acrescentar sempre um campo com a SessionID do cliente, nesse caso, o SID, pra evitar o submit offline por parte de espertinhos.

 

Espero ter ajudado.

 

[]'z

Compartilhar este post


Link para o post
Compartilhar em outros sites

William....

 

Com base em seu exemplo consegui realizar uma serie de alteracoes e funcionou, mas estou com um problema na parte do Loop do ASP, onde pego os valores dos Campos, pois tenho que descartar alguns campos de controle que estao tambem caindo nesta validacao.

 

Estes campos de controle estao com a sua propriedade type="hidden"

 

Ja tentei fazer da seguinte forma

ASP
For each Field in Request.Form

    if (Request.Form("op") OR Request.Form("ADD")) then

    else

         sql = ""           

    end if

Next

 

Voce poderia me ajudar, nesta duvida???

 

Agradeco novamente a ajuda do amigo.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.