Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma dúvida chatinha.
Tenho um formulario aonde me manda através de uma função que esta em um option o id deste option.
Porem tenho que ao recuperar o valor me jogar dentro do select mysql que estou abrindo dentro da função.
Porem nao me retorna.
Estou jogando assim:
function carregar(el)
{
var objItem = document.getElementById("sel"+el);
var objQtde = document.getElementById("qtde"+el);
var objVunit = document.getElementById("vUnit"+el);
var objCliente = document.getElementById("vCliente"+el);
alert(objItem.value);
<%
Set Obj_Produtos_RS = Conn.Execute("SELECT * from ju_te_produtos where codigo_produto="&objItem.value)%>
if (objItem.value = 1<%'=Obj_Produtos_RS("Codigo_Produto")%>) {
parseFloat(objCliente.value).toFixed(2);
objCliente.value = "2000<%'=Obj_Produtos_RS("Produto")%>";
parseFloat(objVunit.value).toFixed(2);
objVunit.value = "5000<%'=Obj_Produtos_RS("Valor_Mercado")%>";
}
}
Mas o select nao funfa, fala que o objecto nao esta correto.pq o sistema esta podendo criar varios registros.
eu posso adicionar campos e assim eu jogo a leitura do array.
vou te postar o código aqui pra você ter noção do problema.
<!--#include file="conn.asp"-->
<!--#include file="inc_funcoes.asp"-->
<%call verifica_vendedores()%>
<script type="text/javascript">
//Total máximo de campos que você permitirá criar em seu site:
var totalCampos = 30;
//Não altere os valores abaixo, pois são variáveis controle;
var iLoop = 1;
var iCount = 1;
var linhaAtual;
function AddCampos() { if (iCount < totalCampos) {
var objTr = document.getElementById("linha"+iCount);
objTr.style.display = "";
iCount++;
}
}
function ResetCampos() { if (iCount > totalCampos) {
var objTr = document.getElementById("linha"-iCount);
objTr.style.display = "";
iCount--;
}
}
function carregar(el)
{
var objItem = document.getElementById("sel"+el);
var objQtde = document.getElementById("qtde"+el);
var objVunit = document.getElementById("vUnit"+el);
var objCliente = document.getElementById("vCliente"+el);
<%
Set Obj_Produtos_RS = Conn.Execute("SELECT * from ju_te_produtos where codigo_produto="&docuobjItem.value)%>
if (objItem.value = 1<%'=Obj_Produtos_RS("Codigo_Produto")%>) {
parseFloat(objCliente.value).toFixed(2);
objCliente.value = "2000<%'=Obj_Produtos_RS("Produto")%>";
parseFloat(objVunit.value).toFixed(2);
objVunit.value = "5000<%'=Obj_Produtos_RS("Valor_Mercado")%>";
}
}
function somar(el) {
var objItem = document.getElementById("sel"+el);
var objQtde = document.getElementById("qtde"+el);
var objVunit = document.getElementById("vUnit"+el);
var objCliente = document.getElementById("vCliente"+el);
var objVtot = document.getElementById("vTot"+el);
var SubTot = document.getElementById("subTotal"+el);
var objFrete = document.getElementById("frete"+el);
var objDesc = document.getElementById("decapagem"+el);
var objTotal = document.getElementById("total"+el);
if ((objQtde.value >= 1) && (objQtde.value < 5)){
parseFloat(objCliente.value).toFixed(2);
objCliente.value = "2720.00"
}
if ((objQtde.value >= 5) && (objQtde.value < 10)){
parseFloat(objCliente.value).toFixed(2);
objCliente.value = "2400.00"
}
//alert(1+(45-45)/30*(1.5/100)*0.82/(1-(0.82))/9.99)*10;
if (objItem.value != "") {
objVunit.value = objItem.value;
var total = (parseFloat(objItem.value)*parseFloat(objQtde.value)+parseFloat(objDesc.value)+parseFloat(objFrete.value));
objVtot.value = total.toFixed(2);
}else{
objVunit.value = "0.00";
objVtot.value = "0.00";
}
var calcSubTotal = 0;
for (iC = 1; iC<=totalCampos; iC++) {
calcSubTotal += parseFloat(document.getElementById("vTot"+iC).value);
}
SubTot.value = calcSubTotal.toFixed(2);
calcTotal = (calcSubTotal);
objTotal.value = calcTotal.toFixed(2);
}
</script>
</head>
<body>
<form name="form1" action="" method="post">
<script type="text/javascript">
var linha2 = "";
linha2 += "<table width='980' border='0'>";
linha2 += "<tr>";
linha2 += "<td width='100px'>Produto</td>";
linha2 += "<td width='100px'>Quantidade</td>";
linha2 += "<td width='100px'>Preço de Tabela</td>";
linha2 += "<td width='100px'>Preço do Cliente</td>";
linha2 += "<td width='100px'>Corte + Dec</td>";
linha2 += "<td width='100px'>Frete</td>";
linha2 += "<td width='100px'>Total Produto</td>";
linha2 += "<td width='100px'></td>";
linha2 += "<td width='100px'></td>";
linha2 += "<td width='80px'></td>";
linha2 += "</tr>";
linha2 += "</table>";
document.write (linha2);
</script>
<script type="text/javascript">for (iLoop = 1; iLoop <= totalCampos; iLoop++) {
var linha = "";
if (iLoop <=1) {
visualizar = ""; visualizar = "none";
}
linha += "<table width='980' border='0'>";
linha += "<tr id='linha"+iLoop+"' style='display:"+visualizar+"'>";
linha += "<td width='100px'>";
linha += "<select id='sel"+iLoop+"' onchange='carregar("+iLoop+")'>";
<%Set Obj_Produtos_RS = Conn.Execute("SELECT * from ju_te_produtos")%>
linha += "<option value=''>---</option>";
<%
Do while not Obj_Produtos_RS.eof
%>
linha += "<option selected value='<%=Obj_Produtos_RS("Codigo_Produto")%>'><%=Obj_Produtos_RS("Produto")%></option>";
<%Obj_Produtos_RS.Movenext
loop%>
linha += "</select>";
linha += "</td>";
linha += "<td width='100px'>";
linha += "<input type='text' id='qtde"+iLoop+"' onkeyup='somar("+iLoop+");' size='3' value='1'>";
linha += "</td>";
linha += "<td width='100px'>";
linha += "<input type='text' size='7' id='vUnit"+iLoop+"' readonly='readonly' value='0.00'>";
linha += "</td>";
linha += "<td width='100px'>";
linha += "<input type='text' size='7' id='vCliente"+iLoop+"' readonly='readonly' value='0.00'>";
linha += "</td>";
linha += "<td width='100px'><input type='text' size='5' name='decapagem"+iLoop+"' id='decapagem"+iLoop+"' value='35.00' onkeyup='somar("+iLoop+")'></td>";
linha += "<td width='100px'><input type='text' size='5' name='frete"+iLoop+"' id='frete"+iLoop+"' value='50.00' onkeyup='somar("+iLoop+")'></td>";
linha += "<td width='100px'>";
linha += "<input type='text' size='8' id='vTot"+iLoop+"' readonly='readonly' value='0.00'>";
linha += "</td>";
linha += "<td width='100px'><input type='text' size='8' id='subTotal' readonly='readonly' value='0.00'></td>";
linha += "<td width='100px'><input type='text' size='8' id='total' readonly='readonly' value='0.00'></td>";
linha += "<td width='80px'><input type='button' value='X' onclick='RemoverCampos("+iLoop+")'></td>";
linha += "</tr>";
linha += "</table>";
document.write (linha);
}
function RemoverCampos(id) {//Pegar o valor do campo que será excluído:
var campoValor = document.getElementById("linha"+id).value;
//Se o campo não tiver nenhum valor, atribuir a string: vazio:
if (campoValor == "") {
campoValor = "vazio";
}
{
document.getElementById("linha"+id).style.display = "none"; iCount--;
//Removendo o valor de hidden1:
if (hidden1.value.indexOf(",linha"+id) != -1) {
hidden1.value = hidden1.value.replace(",linha"+id,"");
}else if (hidden1.value.indexOf("linha"+id+",") == 0) {
hidden1.value = hidden1.value.replace("linha"+id+",","");
}else{
hidden1.value = "";
}
}
}</script>
<input type="button" value="Adicionar campos" onClick="AddCampos()">
<input type="hidden" name="hidden2" id="hidden2">
<br><br>
<br><br>
</form>recupera pelo nome k ele gera o campo
Cara desculpa a minha burrice mas nao entendi nada.
Xanburzin fiz oque você pediu e nao rolou.
Deu o seguinte erro:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[MySQL][ODBC 5.1 Driver][mysqld-5.0.67-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
/tabelaeletronica/corpo_vendedores.asp, line 52
A linha 52 é essa aqui:
Set Obj_Produtos_RS = Conn.Execute("SELECT * from ju_te_produtos where codigo_produto=")%>document.getElementById("sel"+el).value
o código é esse aqui:
function carregar(el)
{
var objItem = document.getElementById("sel"+el);
var objQtde = document.getElementById("qtde"+el);
var objVunit = document.getElementById("vUnit"+el);
var objCliente = document.getElementById("vCliente"+el);
var codigo;
caodigo = document.getElementById("sel"+el).value
<%
Set Obj_Produtos_RS = Conn.Execute("SELECT * from ju_te_produtos where codigo_produto=")%>document.getElementById("sel"+el).value
if (objItem.value = document.getElementById("sel"+el).value) {
parseFloat(objCliente.value).toFixed(2);
objCliente.value = "2630<%=Obj_Produtos_RS("Produto")%>";
parseFloat(objVunit.value).toFixed(2);
objVunit.value = "3690<%=Obj_Produtos_RS("Valor_Mercado")%>";
objItem.reset();
}
}
Voce sabe oque ocorre
Se você tentar inserir / atualizar uma coluna que não permite valores NULL com NULL (por exemplo, embutir NULL na declaração, ou deixando uma coluna - que não possui um valor padrão definido - fora da lista INSERT) .
Xanburzun , seja mais especifico.
nao entendi.
Eu preciso recuperar o valor do select e jogar na função pra entrar na query do select e nao de um insert.
erro em sua sintaxe SQL
Mas o javascript poder ter asp com parametros ou vice versa? Se sim como é feito?
<script>
var variavelServidor = <%=variavelServidor%>
</script>cara nao ta dando certo, acho que vou ter que reconstruir em ajax puro.
pior que o prazo é quarta que vem.
Oque eu tenho que fazer é um sistema aonde tem por exemplo 5 campos em uma linha.
Aonde se eu clicar no botão incluir campos ele coloca mais 5 campos em baixo, estilo um access.
e nesses campos por linha tem que ao colocar valores nos campos ele somar os campos individualmente e em um campo a parte me dar a somatória de tudo.
O problema é que o primeiro campo é um <select> que lista os produtos do banco de dados e ao selecionar o produto me traz nos campos os valores deles.
Eu tenho em torno de 3000 produtos no banco. E tem que ser algo leve.
Pra falar a verdade estou perdidaço.
parece k existe um code,até mesmo foi duvida de outro membro e foi solucionado
e postado o code final, dá uma pesquisada no forum, AJAX é uma ótima opcaun..
você pode alterar tipo um autocomplete
entao eu vi alguma coisa, mas nao tinha nada com banco de dados e tal.
não tem como passar valores do client para o server sem uma requisição passando o parametro. você temque pegar esse select e colocar em outra página. montar um ajax que peque o parametro do elemento html e faça a requisição nesta nova pagina
Só me explica uma coisa que esta me intrigando jonathan.
Meu código tem uma parte que adicina novos registros.
Ele joga em arrays os ids e tal e é montado por um loop.
Como eu faria para ele nao se perder nos registros ali.?
>
não tem como passar valores do client para o server sem uma requisição passando o parametro. você temque pegar esse select e colocar em outra página. montar um ajax que peque o parametro do elemento html e faça a requisição nesta nova pagina
testa ele grava num TXT
xanburzun você nao entendeu.
nao vai ter gravação nesse sistema.
é uma especie de planilha excell aonde quando se preenche algo vai dar uma margem de lucro no final para mim.
a unica coisa que vai ter de consulta a banco é para pegar os valores dos produtos, nome e frete e icms, e valor de corte de material.
nao dá pra fazer todo o calculo via javascript e ao salvar você manda o conjunto de cada input?
entao ai que ta o problema.
querem que ao forem preenchendo ja vai atualizando o valor.
consegui isso usando onkeyup.
mas o problema é que como sao uns 3000 produtos cada um tem valores diferentes e parametros diferentes e ao selecionar um produto ele se perde porque nao esta integrando com o asp.
Gente nao sei mais para onde ir.
selecionar um produto ele se perde porque nao esta integrando com o asp.
e se você pegar essa info do js e jogar numa sesseion e depois ir usando e atualizando el
Como assim?
pq você naun recupera direto pelo campo, ou inves de passar
var objItem = document.getElementById("sel"+el);
e existem exemplos de como recuperar e passar variavel js para ASP