Ir para conteúdo

POWERED BY:

Arquivado

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

Daniel Pellegrino

Update

Recommended Posts

Estou apanhando aqui hehehe

 

Eu quero fazer assim:

Eu tenho uma lista gerada com os dados do BD, na lista é gerado tb o link Alterar ... quando eu clicar no link, os dados dessa linha terão que ir pra um form, para que eu possa alterá-los e salvar sem adicionar um registro novo (claro, é um update, rssss)

 

Bom .... esse código é o da página que gera a lista

 

<%@Language=VBScript%><%Option explicit%><%	Dim cnTmp				'Objeto Conexao	Dim rsTmp				'Objeto Recordset	Dim auxsql				'Cláusula SQL	Dim executa	Set cnTmp = Server.CreateObject("ADODB.Connection")cnTmp.Open "Provider=SQLOLEDB.1;Persist Security Info=True;Password=estag;User ID=estag;Initial Catalog=DB_PRD_ESTAGIARIO;Data Source=NSP1NT09","estag","estag"Set rsTmp=Server.CreateObject("ADODB.Recordset")		auxsql="SELECT * FROM TB_USUARIOS where "	if (request.form("search") <> "nd") then	auxsql = auxsql & "[Teste] = '" & request.form("search") & "' AND "	end if		if (Request.Form("busca") <> "") then	auxsql = auxsql & "[IdadeUsuario] = " & Request.Form("busca") & " AND "	end if		if (Request.Form("data") <> "") or (Request.Form("data2") <> "") then	auxsql = auxsql & "[Data] between '" & Request.Form("data") & "' AND '" & Request.Form("data2") & "' AND "	end if		'if (Request.Form("tipo") <> "") then	'auxsql = auxsql & "[Arq] = '" & Request.Form("tipo") & "' AND "	'end if		if (right(auxsql,6) = "WHERE ") or (Request.Form("search") = "tudo") then	auxsql = "SELECT * FROM TB_USUARIOS order by CPFUsuario"	else	auxsql = left(auxsql,len(auxsql) - 4) & "ORDER BY CPFUsuario"	end if	'Response.Write(auxsql)	'Response.End()	rsTmp.Open auxsql, cnTmp	set executa = cnTmp.execute(auxsql)%><script language="JavaScript"> function voltar(){		window.location = 'formulario.asp';		}</SCRIPT> <form name="GeraLista"><table cellspacing=2 width=100%>				<tr>		<td colspan=9 bgcolor=000000><font face=verdana size=1 color=ffffff><b>Título</b></font></td>	</tr>	<tr>		<td bgcolor=000000><font face=verdana size=1 color=ffffff><b>Nome</b></font></td>		<td bgcolor=000000><font face=verdana size=1 color=ffffff><b>CPF</b></font></td>		<td bgcolor=000000><font face=verdana size=1 color=ffffff><b>Endereço</b></font></td>		<td bgcolor=000000><font face=verdana size=1 color=ffffff><b>Idade</b></font></td>		<td bgcolor=000000><font face=verdana size=1 color=ffffff><b>Data de Nascimento</b></font></td>		<td bgcolor=000000><font face=verdana size=1 color=ffffff><b>Teste</b></font></td>		<td bgcolor=000000><font face=verdana size=1 color=ffffff><b>Arquivo</b></font></td>		<td bgcolor=000000><font face=verdana size=1 color=ffffff><b>Link</b></font></td>		<td bgcolor=000000><font face=verdana size=1 color=ffffff><b>Excluir</b></font></td>		<td bgcolor=000000><font face=verdana size=1 color=ffffff><b>Alterar</b></font></td>	</tr>	<%dim colordo while not rsTmp.eof	if color = "#E0E0E0" then		color = "#FFFFFF"	else			color = "#E0E0E0"	end if%>	<%While Not rsTmp.EOF%>	<tr bgcolor="<%=color%>">		<td><font face=verdana size=1 color=000000><%=rsTmp("NomeUsuario")%></td>		<td><font face=verdana size=1 color=000000><%=rsTmp("CPFUsuario")%></td>		<td><font face=verdana size=1 color=000000><%=rsTmp("EnderecoUsuario")%></td>		<td><font face=verdana size=1 color=000000><%=rsTmp("IdadeUsuario")%></td>		<td><font face=verdana size=1 color=000000><%=rsTmp("Data")%></td>		<td><font face=verdana size=1 color=000000><%=rsTmp("Teste")%></td>		<td><font face=verdana size=1 color=000000><%=rsTmp("Arq")%></td>		<td><font face=verdana size=1 color=000000><a href="../upload<%=rsTmp("Arq")%>">Visualizar</a></td>		<td><a href="delete.asp?txtCPF=<%=rsTmp("idUsuario")%>" onclick="return confirm('Confirma a exclusão desse registro ?');">Excluir</a></td>		<td><a href="update.asp?txtCPF=<%=rsTmp("idUsuario")%>">Alterar</a></td>	</tr>			<%rsTmp.MoveNext WendlooprsTmp.Close: Set rsTmp=NothingcnTmp.Close: Set cnTmp=Nothing'response.redirect("formulario.asp")%></table></form><input type="submit" name="voltar" value="Voltar" onClick="voltar()">

E esse código é uma tentativa fracassada de um update, rsss

 

<%	Dim cnTmp				'Objeto Conexao	Dim rsTmp				'Objeto Recordset	Dim sSQL				'Cláusula SQL	dim rsTmp2Set cnTmp = Server.CreateObject("ADODB.Connection")cnTmp.Open "Provider=SQLOLEDB.1;Persist Security Info=True;Password=estag;User ID=estag;Initial Catalog=DB_PRD_ESTAGIARIO;Data Source=NSP1NT09","estag","estag"Set rsTmp=Server.CreateObject("ADODB.Recordset")edit_id = Request.Form("txtid")edit_nome = Request.Form("txtNome")edit_cpf = Request.Form("txtCPF")edit_end = Request.Form("txtEndereco")edit_idade = Request.Form("txtIdade")edit_data = Request.Form("txtData")edit_teste = Request.Form("txtteste")edit_arq = Request.Form("txtarq")sSQL = "UPDATE tb_usuarios SET NomeUsuario = '"&edit_nome&"', CPFUsuario = '"&edit_cpf&"', EnderecoUsuario = '"&edit_end&"', IdadeUsuario = "&edit_idade&", Data = '"&edit_data&"', Teste = '"&edit_teste&"'  WHERE idUsuario = "&edit_id&""rsTmp.Open sSQL, cnTmp%><form name="updt"><table><tr bgcolor="#f3f3f3"> 		<td width="13%"><font size="2" face="Verdana">Nome:</font></td>		<td width="87%"> <input name="txtNome2" value="<%rsTmp("NomeUsuario")%> type="text" size="40" onblur="uppercase(this)" onblur="trim()"> </td>	</tr>		<tr bgcolor="fcfcf0"> 		<td><font size="2" face="Verdana">CPF:</font></td>		<td><input name="txtCPF2" value="<%rsTmp("CPFUsuario")%> type="text" size="20" maxlength=11 onkeypress="checkDigit()" onblur="validaCPF(this)"></td>	</tr>		<tr bgcolor="#f3f3f3"> 		<td bgcolor="#f3f3f3"><font size="2" face="Verdana">Endereço:</font></td>		<td><input name="txtEndereco2" value="<%rsTmp("EnderedoUsuario")%> type="text" size="40" onblur="uppercase(this)" onblur="trim(this)"></td>	</tr>		<tr bgcolor="fcfcf0"> 		<td><font size="2" face="Verdana">Idade:</font></td>		<td><input name="txtIdade2" value="<%rsTmp("IdadeUsuario")%> type="text" size="5" maxlength=2 onkeypress="checkDigit()"></td>	</tr>		<tr bgcolor="f3f3f3">		<td><font size="2" face="Verdana">Data Nascimento:</font></td>		<td><input name="txtData2" type="text" size="10" maxlength=10 value="<%=formatdatetime(date)%>" onblur='value="<%=formatdatetime(date)%>" ' onkeypress="checkDigitL()" ></td>	</tr>		<tr bgcolor="fcfcf0">		<td><font size="2" face="Verdana">Teste:</font></td>		<td><select name=txtteste2>				<option value=teste1> Teste				<option value=teste2> Teste2				<option value=teste3> Teste3			</select></td>	</tr>		<tr bgcolor="f3f3f3">		<td><font size="2" face="Verdana">Arquivo:</font></td>		<td><input name="txtArq2" value="<%rsTmp("Arq")%>" type="file"></td>	</tr>	<tr>		<td> </td>		<td><input type="submit" name="Submit" value="Salvar" ></td>	</tr></table></form>

Tem a página do formulário pra inserir (que eu copiei o form na página update, pra ele trazer os dados, não sei se isso é necessário).

 

Aguardo uma ajuda ehehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui :P

 

Bom, primeiro eu capturo os dados que estão na lista.

Joguei todos eles em um form, para poder alterar todos.

O código está um pouco grande pois tem JS nele

 

<%@Language=VBScript%><%Option explicit%><!-- #include file = "upload_funcoes.asp" -->	<script Language="JavaScript" Src="../js/scripts.js"> </Script>	<script Language="JavaScript" Src="../js/validaData.js"> </Script>	<script Language="JavaScript">		function BuscaArquivos(){			doc = document.frmBusca; 			if(trim(doc.txtSearch.value)==''){			alert('O nome do arquivo deve ser informado !');			doc.txtSearch.value='';			doc.txtSearch.focus();			return false;		}		doc.action='search_arquivo.asp';		doc.method='post';		doc.target='mainFrame';		doc.submit();				}		function checkDigitL(){		event.keyCode = 0;	}		function esconder(id_linha){			// Verifica se existe apenas uma linha para esconder		if(id_linha.length==undefined){							if(id_linha.style.display=='none'){					id_linha.style.display='';				}else{					id_linha.style.display='none';				}				}else{			// Efetua o Loop escondendo ou mostrando as linhas desejadas			for(i=0;i<id_linha.length;i++){				if(id_linha(i).style.display=='none'){					id_linha(i).style.display='';				}else{					id_linha(i).style.display='none';				}			}				}				}		function MesAnoFormat(txt) {	// Ao Digitar LETRAS não passa nenhum valor		 if ((event.keyCode < 48) || (event.keyCode > 57))			event.returnValue = false;			else if (txt.value.length == 2) 				// Adiciona "/" na Data				txt.value += '/';			if (txt.value.length == 5)				txt.value += '/';}	//Valida CPF		function validaCPF(obj) {				 cpf = obj.value				 erro = new String;				 if (cpf.length < 11) {  					if(cpf.length == 10){						cpf = "0" + cpf;						obj.value=cpf;					}					else if (cpf.length == 9) {						cpf = "00" + cpf;						obj.value=cpf; 					}					else {						alert("Número de CPF inválido! \n\n");						obj.value = "";						obj.focus();						return false; 					}					}									 				 var nonNumbers = /\D/;				 if (nonNumbers.test(cpf)) erro += "A verificacao de CPF suporta apenas numeros! \n\n"; 				// if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){				//		 erro += "Numero de CPF invalido!"				//}			   var a = [];			   var b = new Number;			   var c = 11;			   for (i=0; i<11; i++){					   a[i] = cpf.charAt(i);					  if (i < 9) b += (a[i] * --c);			   }			   if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }			   b = 0;			   c = 11;			   for (y=0; y<10; y++) b += (a[y] * c--); 			   if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }			   if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){					   erro +="Digito verificador com problema!";			   }			   if (erro.length > 0){					   alert(erro);					   obj.value = "";					   obj.focus();					   obj.select();										   					   return false;			   }			   return true;	   }	   	   	function ValidaIdade(obj,dia,mes,ano) {	data=obj.value;	dia=obj.substring(0,2);	mes=obj.substring(3,5);	ano=obj.substring(6,9);	document.write(dia)	document.write(mes)	document.write(ano)	}	   	   	   </script><%	Dim cnTmp				'Objeto Conexao	Dim rsTmp				'Objeto Recordset	Dim auxsql				'Cláusula SQL	Dim executa		Set cnTmp = Server.CreateObject("ADODB.Connection")cnTmp.Open "Provider=SQLOLEDB.1;Persist Security Info=True;Password=estag;User ID=estag;Initial Catalog=DB_PRD_ESTAGIARIO;Data Source=NSP1NT09","estag","estag"Set rsTmp=Server.CreateObject("ADODB.Recordset")auxsql = "SELECT * FROM TB_USUARIOS where idUsuario = "&Request("txtCPF")&" "rsTmp.Open auxsql, cnTmpset executa = cnTmp.Execute(auxsql)%><form name="updt" method="post" action="update_salva.asp" enctype="multipart/form-data"><table><tr bgcolor="#f3f3f3">		<td width="13%"><font size="2" face="Verdana">Nome:</font></td>		<td width="87%"> <input name="txtNome2" value="<%=rsTmp("NomeUsuario")%>" type="text" size="40" onblur="uppercase(this)"> </td>	</tr>		<tr bgcolor="fcfcf0">		<td><font size="2" face="Verdana">CPF:</font></td>		<td><input name="txtCPF2" value="<%=rsTmp("CPFUsuario")%>" type="text" size="20" maxlength=11 onkeypress="checkDigit()" onblur="validaCPF(this)"></td>	</tr>		<tr bgcolor="#f3f3f3">		<td bgcolor="#f3f3f3"><font size="2" face="Verdana">Endereço:</font></td>		<td><input name="txtEndereco2" value="<%=rsTmp("EnderecoUsuario")%>" type="text" size="40" onblur="uppercase(this)"></td>	</tr>		<tr bgcolor="fcfcf0">		<td><font size="2" face="Verdana">Idade:</font></td>		<td><input name="txtIdade2" value="<%=rsTmp("IdadeUsuario")%>" type="text" size="5" maxlength=2 onkeypress="checkDigit()"></td>	</tr>		<tr bgcolor="f3f3f3">		<td><font size="2" face="Verdana">Data Nascimento:</font></td>		<td><input name="txtData2" type="text" size="10" maxlength=10 value="<%=formatdatetime(date)%>" onblur='value="<%=formatdatetime(date)%>" ' onkeypress="checkDigitL()" ></td>	</tr>		<tr bgcolor="fcfcf0">		<td><font size="2" face="Verdana">Teste:</font></td>		<td><select name="txtteste2">				<option value=teste1> Teste				<option value=teste2> Teste2				<option value=teste3> Teste3			</select></td>	</tr>		<tr bgcolor="f3f3f3">		<td><font size="2" face="Verdana">Arquivo:</font></td>		<td><font size="1" face="Verdana"><%=rsTmp("Arq")%></font>			<input name="txtArq2"  type="file"></td>	</tr>	<tr>		<td> </td>		<td><input type="submit" name="Submit" value="Salvar" ></td>	</tr>		<tr>		<td><input type="hidden" name="txtCPF" value="<%=rsTmp("IdUsuario")%>"></td>	</tr></table></form>

Após recuperar todos os dados e o usuário fazer as mudanças necessárias, ele salva isso no BD de novo, sem adicionar um novo registro, apenas alterando o registro já existente.

 

<!-- #include file = "upload_funcoes.asp" --><%' Chamando Funções, que fazem o Upload funcionarbyteCount = Request.TotalBytesRequestBin = Request.BinaryRead(byteCount)Set UploadRequest = CreateObject("Scripting.Dictionary")BuildUploadRequest RequestBin' Recuperando os Dados Digitados ----------------------ID = UploadRequest.Item("txtCPF").Item("Value")Nome = UploadRequest.Item("txtNome2").Item("Value")CPF = UploadRequest.Item("txtCPF2").Item("Value")Endereco = UploadRequest.Item("txtEndereco2").Item("Value")Idade = UploadRequest.Item("txtIdade2").Item("Value")Data = UploadRequest.Item("txtData2").Item("Value")Teste = UploadRequest.Item("txtteste2").Item("Value")' Tipo de arquivo que esta sendo enviadotipo_foto = UploadRequest.Item("txtArq2").Item("ContentType")' Caminho completo dos arquivos enviadoscaminho_foto = UploadRequest.Item("txtArq2").Item("FileName")' Nome dos arquivos enviadosnome_foto = Right(caminho_foto,Len(caminho_foto)-InstrRev(caminho_foto,"\"))' Conteudo binario dos arquivos enviadostxtArq2 = UploadRequest.Item("txtArq2").Item("Value")' pasta onde as imagens serao guardadaspasta = Server.MapPath("../upload/")nome_foto = "/"&nome_foto' pasta + nome dos arquivoscfoto = nome_foto' Fazendo o Upload do arquivo selecionadoif txtArq2 <> "" thenSet ScriptObject = Server.CreateObject("Scripting.FileSystemObject")Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto)For i = 1 to LenB(txtArq)MyFile.Write chr(AscB(MidB(txtArq2,i,1)))NextMyFile.Closeend ifSet cnTmp = Server.CreateObject("ADODB.Connection")cnTmp.Open "Provider=SQLOLEDB.1;Persist Security Info=True;Password=estag;User ID=estag;Initial Catalog=DB_PRD_ESTAGIARIO;Data Source=NSP1NT09","estag","estag"sSQL = "UPDATE TB_USUARIOS SET NomeUsuario = '"&Nome&"', CPFUsuario = '"&CPF&"', EnderecoUsuario = '"&Endereco&"', IdadeUsuario = "&Idade&", Data = '"&Data&"', Teste = '"&Teste&"', Arq = '"&cfoto&"' where idUsuario = "&ID&""cnTmp.execute(sSQL)Response.Redirect ("formulario.asp")%>

Esse código é um pouco mais complexo, pois tem upload também, por isso quebrei um pouco mais a cabeça

 

Valeu pela ajuda, pois deu uma clareada. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.