Ir para conteúdo

POWERED BY:

Arquivado

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

panox

Fazendo um Insert Into de varios itens de uma vez só

Recommended Posts

E ai galera, tudo certinho com vocês ?

 

É o seguinte, eu estou com o seguinte probleminha, eu tenho um formulario de requisição que ao ser completo, ele joga os dados numa tabela e, a cada click no botao, ele adiciona mais uma linha nessa tabela...ela pode conter 1 ou 100 linhas, depende do caso.

 

O que preciso fazer é, um insert q insira todas as linhas de uma vez só na tabela (REQ_REQUISICAO)

 

aqui meu codigo se for de ajuda

 

 

 

<!--#include file="conexao.asp"-->

<%
call abre_conexao

sql = "Select CODIGO, DESCRICAO, COD_GESTOR from OS_TECNOLOGIA_GESTOR"
set r1 = conexao.execute(sql)

%>

<script language="javascript">

function popup(apelido, cod_gestor2)	{
				window.open('pag.asp?apelido='+apelido+'&cod_gestor2='+cod_gestor2,
				'Verificacao',
				'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,widt
h=800,height=600');  
}


function popup2(descricao, cod_gestor2)	{
				window.open('pes.asp?descricao='+descricao+'&cod_gestor2='+cod_gestor2,
				'Verificacao',
				'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,widt
h=800,height=600');  
}

function Insere()
{
var x=document.getElementById('tabela').insertRow(1)
var a=x.insertCell(0)
var b=x.insertCell(0)
var c=x.insertCell(0)
var d=x.insertCell(0)
var e=x.insertCell(0)
e.innerHTML=document.getElementById("apelido").value;
d.innerHTML=document.getElementById("barra").value;
c.innerHTML=document.getElementById("descricao").value;
b.innerHTML=document.getElementById("um").value;
a.innerHTML=document.getElementById("qtd").value;
}

	function retornaValor(){
		var valor = document.getElementById("cod_gestor").value;
		var res = valor.split("*");

		document.getElementById("cod_gestor2").value = res[1];
	}	  
	
		function retornaValor2(){
		var valor = document.getElementById("cod_gestor").value;
		var res = valor.split("*");

		document.getElementById("cod_gestor3").value = res[0];
	}   
	
	
</script>





<html>
<head>
<head>
<script src="ajax.js"></script>
</head>
<title>Requisição de Materiais</title>


<style type="text/css">
table
{
font-family: verdana;
font-size: 11px;
color: #000099;
font-weight: bold;
}

select
{
font-family: verdana;
font-size: 11px;
}
</style>
<body>


<table border="1" width="40%" cellspacing="0" cellpadding="5" bgcolor="#EAEBEF" bordercolorlight="#FFFFFF" bordercolordark="#E3E5EA">
	<tr>
		<td>
		<b>Aplicação dos items a requisitar / Observações</b><br>
		</td>
		<td>
<textarea rows=10 cols=155 name="ta1"></textarea>
		</td>
	<tr>	</tr>

		<td width="10%">Projeto:</td>
		<td width="30%"><select name="cod_gestor" id="cod_gestor" onchange="retornaValor(), retornaValor2(), MandaID(cod_gestor3.value);">
				<option value="">Selecione um Projeto</option>
				<% while not r1.eof %>
				<option value="<%= r1("CODIGO") & "*" & r1("COD_GESTOR") %>"><%= r1("DESCRICAO") %></option>
				<%
				r1.movenext
					 wend
				%>
				</select>
				
				<input type="hidden"  id="cod_gestor2" name="cod_gestor2">
			

				<input type="hidden"  id="cod_gestor3" name="cod_gestor3">
			
				</td>
	</tr>
		<td>Centro de Custo:</td>
		<td><div id="exibe_ccusto"><select><option value="">Selecione um Centro de Custo</option></select></div>
		</td>
	</tr>
	<tr>
	</table>
	<table border="1" cellspacing="0" cellpadding="5" bgcolor="#EAEBEF" bordercolorlight="#FFFFFF" bordercolordark="#E3E5EA">
		<td>
		Codigo
		</td>
		<td>
		<input type="text" name="apelido" id="apelido" onBlur="popup(this.value, cod_gestor2.value)">
		</td>
		<td>
		Codigo de Barras
		</td>
		<td>
		<input type="text" name="barra" id="barra">
		</td>
		<td>
		Descrição
		</td>
		<td>
		<input type="text" name="descricao" id="descricao" onchange="popup2(this.value, cod_gestor2.value)">
		</td>
		<td>
		UM
		</td>
		<td>
		<input type="text" name="um" id="um">
		</td>
		<td>
		Quantidade
		</td>
		<td>
		<input type="text" name="qtd" id="qtd">
		</td>
		<td>
	<input type="submit" value="Requisitar" OnClick="Insere()">
   
<input type="reset" value="  Deletar  "></td>
</tr>
</table>






<form method="post" action="reqins.asp">


<table border="1" width="100%" cellspacing="0" cellpadding="5" id="tabela" name="tabela">

<tr bgcolor="#EAEBEF" bordercolorlight="#FFFFFF" bordercolordark="#E3E5EA">
<td WIDTH="12%"><font  color=#000099 type="verdana"><b>Codigo</b></font></td>
<td width="15%"><font  color=#000099 type="verdana"><b>Codigo de Barra</b></font></td>
<td width="50%"><font  color=#000099 type="verdana"><b>Descricao</b></font></td>
<td width="3%"><font  color=#000099 type="verdana"><b>UM</b></font></td>
<td width="1%"><font  color=#000099 type="verdana"><b>Quantidade</b></font></td>
</tr>

</table>

<br>
<br>

<input type="submit" value="Finalizar Requisição">
        
<input type="reset" value="Desprezar Requisição">
</form>
</body>
</html>
<%
call fecha_conexao
set r1 = nothing
%>

 

Se alguém puder me ajudar, eu agradeço muito...abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz um FOR com o valor de quantos você quer inserir no banco, assim ele vai inserir de acordo com quantos quiser!

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmm, e no meu caso que nunca é um valor fixo ? qual seria a estrutura do for ? se você tiver um basicão ai só pra mim usar de base, eu agradeceria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmm, e no meu caso que nunca é um valor fixo

mais ele vai parar de inserir uma vez, então entenda...

 

colocar uma session para receber os valores de quantas vezes foi add, exemplo:

 

ele clicou uma vez, adiciona o valor "1" na session, clicou a segunda, faz "valor_session + 1" e assim a session vai somando, quando ele terminar ele vai clicar no botão, ai é que vem o FOR mais antes você tem que jogar os valores dentro de formularios com input hidden com o numero de cada linha:

 

o for é simples

 

for i = 1 to session("valor")
conexao.execute("insert into tabela (nome) values('"&request.form("nome"&i)&"')")
next

Compartilhar este post


Link para o post
Compartilhar em outros sites

ale seria a quantidade

 

como voce definirá ela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

elas sao todas request.forms do outro formulario...eu tentei fazer um =Request.form da tabela só pra ver se estava trazendo mas nem isso ...as linhas da tabela sao inseridas por um JS, por isso eu nao consigo dar o Request.Form nelas...

 

 

function Insere(){
	

var x=document.getElementById('tabela').insertRow(1)
var a=x.insertCell(0)
var b=x.insertCell(0)
var c=x.insertCell(0)
var d=x.insertCell(0)
var e=x.insertCell(0)
e.innerHTML=document.getElementById("apelido").value;
d.innerHTML=document.getElementById("barra").value;
c.innerHTML=document.getElementById("descricao").value;
b.innerHTML=document.getElementById("um").value;
a.innerHTML=document.getElementById("qtd").value;
}

o insert seria basicamente com o request de todos estes dados da tabela, mas pode ser 1 item ou 100 itens, ai entraria a parte complexa da coisa (pelo menos pra mim)

 

se alguem tiver um codigo parecido pra mim usar de base, ou mesmo como fazer o request das colunas em JS..eu agradeceria muito

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas se for uma coisa ou 100 será inserido num unico registro ou em 100

 

se for um registro por campo entao pode usar o for each usando a coleçao request.form assim fara uma passagem pelo loop por campo

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao use o for each mesmo com a colecao request.form

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe a ignorancia ( denovo ) mas, nunca usei for each... como seria +/- essa sintaxe ? e outra coisinha que tambem nao entendi... como fazer o request.form dessas variaveis em JS ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

os requests serao dos campos do formulario

 

Aqui a sintaxe que ira exibir os dados

 

depois voce altera para inserir

 

For each i in Request.Form
	response.Write i & " - " & request(i)&"<br/>"
Next

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmm, esse codigo funcionou direitinho, mas ele nao consegue fazer o request dos items da tabela, como eu posso fazer o request destes itens ?

 

Codigo que cria a tabela:

 

function Insere(){
	

var x=document.getElementById('tabela').insertRow(1)
var a=x.insertCell(0)
var b=x.insertCell(0)
var c=x.insertCell(0)
var d=x.insertCell(0)
var e=x.insertCell(0)
e.innerHTML=document.getElementById("apelido").value;
d.innerHTML=document.getElementById("barra").value;
c.innerHTML=document.getElementById("descricao").value;
b.innerHTML=document.getElementById("um").value;
a.innerHTML=document.getElementById("qtd").value;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso nao sei informar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não faz Request de uma tabela.

 

O que você pode fazer aí é criar um campo input hidden em cada célula e informar o valor e o nome desejado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm... entendo mas ai seria complica um pouco nao ? onde eu colocaria a sintaxe para esses hiddens dentro da minha função JS ? teria que adicionar uma hidden em cada "td dinamico" certo ? se sim, isso daria conflito no request.form por causa dos nomes nao ? ;/

 

Se você tiver algum codigo para me explicar melhor esta soluçao eu agradeceria..

 

abraços

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.