Jump to content
Fórum Script Brasil

Lamenza

Membros
  • Posts

    18
  • Joined

  • Last visited

About Lamenza

  • Birthday 03/28/1964

Contatos

  • Website URL
    http://
  • ICQ
    0

Perfil

  • Location
    Rio de Janeiro

Lamenza's Achievements

0

Reputation

  1. Alguém conhece alguma função para ordenar um array multidimensional? Em tempo: fazer a ordenação por dois elementos do array.
  2. Caro Allan, Nessa solução há um probema. A barra de progresso, ao final de seu avanço, executa uma rotina. É essa rotina que executa a tarfefa principal de minha aplicação. Ocorre que a solução apresentada por você - ao eliminar a chamada da função BarraOculta() - deixa-se de chamar a rotina principal. O quarto argumento da função BarraOculta() - aArg - é um array com os argumentos da função principal. A barra de progresso leva um tempo para ser executada. Nesse intervalo de tempo eu pretendia pausar a execução do código na página chamadora - pai - enquanto a página chamada - filho - executasse sua tarefa. Ao final do tempo da barra de progresso, a página pai continuaria processando a função, mandando novo lote de informações para a página filho, sempre após o tempo da barra.
  3. Tenho duas páginas que trabalham associadas. A página "pai" passa parâmetros na string para a página "filho". A página "filho" responde a página "pai" (parent.Resposta()) que executou sua função. Ocorre que sua função é salvar dados num banco de dados, cujo tempo de processamento não é o mesmo das páginas "pai" e "filho". Como a página "pai" pode mandar vários lotes de dados, usei uma rotina em javascript que gera uma pausa na execução do envio dos lotes e exibe uma barra de progresso, para que o usuário saiba que algum processamento ocorre. O erro se dá quando a barra entra num loop - se não infinito - maior que o número de lotes. Funciona mais ou menos assim (a página abaixo não tem o mesmo conteúdo que as minhas, mas os erros são idênticos): página chamadora <html> <head> <title>Implementing Wait in Javascript</title> &lt;script language="javascript" type="text/javascript" src="Barra.js"></script> &lt;script language="javascript" type="text/javascript"> //função chamada pela barra de progresso, só chamada ao final do tempo definido em Barra.js function AcaoBarra(arg1, arg2){ //alert(arg1 + " - " + arg2); } function teste(){ for (var i=0;i<5;i++){ BarraCria('teste','PBouter1','PBdone1'); } } </script> </head> <body leftmargin="15" topmargin="0" bgcolor="#EEEEFF"> <input type="button" onclick="teste()" /> <br /> <div id="teste"></div> </body> </html> O código "Barra.js" é o seguinte: var AlturaAntes = 0; var BarraAltura=15; var BarraLargura = screen.availWidth; var BarraTempo=2; var BarraIndicador=(BarraLargura-2)/BarraTempo/10; var BarraCarregada=0; var CorAntes = ""; var Pid=0; var BarraAvanca = true; function BarraVars(){ AlturaAntes = 0; BarraAltura=15; BarraLargura = screen.availWidth; BarraTempo=2; BarraIndicador=(BarraLargura-2)/BarraTempo/10; BarraCarregada=0; CorAntes = ""; Pid=0; BarraAvanca = true; } function BarraOculta(el_Ancora,el_Tabela,el_Barra,aArg){ el1 = document.getElementById(el_Tabela); el2 = document.getElementById(el_Barra); el2.style.width = 0; el2.style.height = 0; clearInterval(Pid); window.status=''; AcaoBarra(aArg); BarraCarregada = 0; BarraAltura = 15; linhaBarra = document.getElementById(el_Ancora); linhaBarra.style.backgroundColor = CorAntes; linhaBarra.style.height = AlturaAntes; //el2.parentNode.removeChild(el2); //el1.parentNode.removeChild(el1); //BarraAvanca = false; //BarraVars(); } function BarraCria(el_Ancora,el_Tabela,el_Barra,aArg){ linhaBarra = document.getElementById(el_Ancora); CorAntes = linhaBarra.style.backgroundColor; AlturaAntes = linhaBarra.style.height; linhaBarra.style.backgroundColor = "yellow"; vertab = document.getElementById(el_Tabela); if (!vertab) { //BarraAvanca = true; CriaTab(el_Ancora,el_Tabela,el_Barra,1); } el1 = document.getElementById(el_Tabela); BarraRedimensiona(el_Barra,0,0,BarraAltura-2,0); el1.style.visibility="visible"; Pid=setInterval(function() { BarraAvanco(el_Ancora,el_Tabela,el_Barra,aArg); },95); } function BarraAvanco(el_Ancora,el_Tabela,el_Barra,aArg){ window.status="Carregando..."; BarraCarregada++; if(BarraCarregada<0)BarraCarregada=0; if(BarraCarregada>=BarraTempo*10){ clearInterval(Pid); BarraCarregada=BarraTempo*10; BarraOculta(el_Ancora,el_Tabela,el_Barra,aArg); } BarraRedimensiona(el_Barra, 0, BarraIndicador*BarraCarregada, BarraAltura-2, 0); } function BarraRedimensiona(id_elemento,t,r,b,l){ //alert(BarraAvanca) if (BarraAvanca){ vertab = document.getElementById(id_elemento); if (vertab) { elemento = document.getElementById(id_elemento); elemento.style.width=r+'px'; } } } function CriaTab(idancora,idtabela,idlinha,celulas){ var elemento = document.getElementById(idancora); tabela = document.createElement("<table border='0' cellpadding='0' cellspacing='0' style='height:" + BarraAltura + "; border-collapse: collapse;border:1px solid black; background-color:#FFFFFF;' id='" + idtabela + "'></table>"); elemento.appendChild(tabela); Tabela_Base = document.getElementById(idtabela); var Linha = Tabela_Base.insertRow(); if (celulas>1) { for (i=0;i<celulas;i++){ var celula1 = Linha.insertCell(); celula1.id = "cel_" + i.toString(); celula1.style.width = Tamanho.toString() + "%"; if ((i % 2) == 0) { celula1.style.backgroundColor ="red"; celula1.style.border = "0px solid black"; } else { celula1.style.backgroundColor ="white"; celula1.style.border = "1px solid black"; } } } else { var celula1 = Linha.insertCell(); celula1.id = idlinha; celula1.style.backgroundColor ="red"; } } Algém poderia me ajudar a interromper a barra ao final das iterações? Ou alguém conhece outra solução para o problema? Já criei algumas variáveis booleanas para tentar controlar o fluxo da barra, mas não consigo.
  4. Quando capturo os dados de um formulário e os envio para um BD Access, uso uma rotina padronizada. Não consegui entender por que razão os dados estão sendo salvos em duplicidade - as vezes salva-se 10 vezes o mesmo registro. Alguém já experimentou isso?
  5. Caros, O select a que me refiro, é criado por uma função. Ele não é um elemento da página. É um select do tipo auto-completar, que vai tendo suas opções preenchidas conforme o texto digitado pelo usuário Ele é criado dentro de uma div. Mesmo assim, fica por traz de um iframe localizado logo abaixo dele. Já alterei as propriedades CSS position e z-index, mas não dá certo. Já me referi as mesmas propriedades, na função criadora, com a propriedade parent, tentando dar-lhe uma hierarquia inferior. Também não dá certo! Se alguém tiver um pouco de paciência, copie e cole o código das páginas e veja o que ocorre. Desconsidere o erro que mecionei acima, pois ele não interfere no que pretendo demonstrar como sendo a solução que busco. Grato, Lamenza
  6. Caro Help, Obrigado pelo... help! Mas não é esse o meu problema! Como eu não postei nenhum exemplo, vamos lá! Talvez assim eu me faça entender direito! Página pai <html> <head> <meta name="GENERATOR" content="Microsoft FrontPage 6.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Nova pagina 1</title> </head> <body> <iframe id="frame1" style="height:20px; width:100%" scrolling="no" src="iframe1.htm"></iframe> <iframe id="frame1" style="height:120px; width:100%" scrolling="no" src="http://scriptbrasil.com.br/forum/index.php?showtopic=91996&hl=array"></iframe> </body> </html> Página Filho <html> <head> <meta name="GENERATOR" content="Microsoft FrontPage 6.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Nova pagina 1</title> <style media="screen" type="text/css"> body {margin-top:0; margin-left:0; margin-right:0} .select{font-family:arial;font-size:8pt;color:#000000;width:98%} table {border-collapse: collapse;margin-left: 0; margin-right: 0; margin-top: 0; width: 100%; height: 33px; border-collapse: collapse; background-color: #ABABAB; border: 0 none #111111} .list{position:absolute;font-family:arial;font-size:8pt;color:#000000;width:98%;z-index:1} #listHolder{position:absolute;border:0;width:90%;z-index:1} #Escondido0 {display: inline; position: absolute;left: 0; top: -200; text-align: left} #Escondido1 {display: inline; position: absolute;left: 0; top: -200; text-align: left} </style> <script type="text/javascript" language="javascript"> var ArrayPesquisa = new Array([0,"leandro"], [1,"ligia"], [2,"lucas"]); var teclapress; function ComboBuscaDados(campo,texto){ CampoPesquisa = campo; teclapress = event.keyCode; //ArrayPesquisa = teste; ComboCriacao(CampoPesquisa,ArrayPesquisa); } //Função criadora do combo, chamada por ComboBuscaDados() //Esta função cria um combobox associado ao [obj], com as opções do array [aArrayPesquisa] function ComboCriacao(obj,aArrayOpcoes) { var selecionados = aArrayOpcoes.length; var k = teclapress; var T = BuscaPosY(obj); //top var L = BuscaPosX(obj); //left var list = document.getElementById('listHolder'); if(!list) { var list = document.createElement('DIV'); list.id = 'listHolder'; document.body.appendChild(list); } list.style.width = (document.body.offsetWidth-10); list.style.top=(T+obj.offsetHeight); list.style.left=L; list.style.display='none'; var txt=obj.value; if (txt) { var str='<select style="z-index:600" class="list"'+ 'onclick="ComboDevolveValor(\''+'CampoA'+'\',this.options[this.selectedIndex].value,\''+obj.id+'\',this.options[this.selectedIndex].text);"'+ 'onkeyup="if(event.keyCode==13){ComboDevolveValor(\''+'CampoA'+'\',this.options[this.selectedIndex].value,\''+obj.id+'\',this.options[this.selectedIndex].text);};if(event.keyCode==27){'+ 'document.getElementById(\'listHolder\').style.display=\'none\';'+ 'document.getElementById(\''+obj.id+'\').focus()};" id="selector" size="6">' var match=true for(a=0;a<aArrayOpcoes.length;a++){ //str+=('<option value="'+aArrayOpcoes[a][0].replace(/\'/gi,'’')+'">'+aArrayOpcoes[a][1]+'</option>'); //Linha com erro } str+='</select>' if(match){ list.innerHTML=str list.style.display='block' var sel=document.getElementById('selector') // Seta abaixo if(k=='40') { sel.focus() } // Enter if(k=='13'){ document.getElementById('listHolder').style.display='none' } } } } function ComboDevolveValor(obj,val,obj1,val1){ var obj=document.getElementById(obj); var obj1=document.getElementById(obj1); //var tabelapesquisa = document.getElementById("TelaPesquisa"); obj.value=val; obj.focus(); obj1.value = val1; document.getElementById('listHolder').style.display='none'; //tabelapesquisa.style.display = "none"; //JanelaMenuInt1.FormMenu.valor_link.value=val; PesquisaComResultados(val); } //Chamada pela função criadora do combo, serve para identificar o campo de ancoragem e fixar sua posição X function BuscaPosX(obj){ var curleft=0; if(obj.offsetParent) { while(obj.offsetParent){ curleft+=obj.offsetLeft obj=obj.offsetParent; } } else if(obj.x) curleft+=obj.x; return curleft; } //Chamada pela função criadora do combo, serve para identificar o campo de ancoragem e fixar sua posição Y function BuscaPosY(obj){ var curtop=0; if(obj.offsetParent){ while(obj.offsetParent){ curtop+=obj.offsetTop obj=obj.offsetParent; } } else if(obj.y) curtop+=obj.y; return curtop; } </script> </head> <body> <div id="Escondido1"> <input id="CampoA" name="CampoA" type="text" value="" /> <input id="CampoB" name="CampoB" type="text" value="" /> </div> <input type="text" id="listapessoas" name="listapessoas" value="" onkeyup="ComboBuscaDados(this,this.value);" size="20" style="font-family: arial; font-size: 9pt; width: 100%"/> </body> </html> Na página filho há um erro que não interfere no que eu estou perguntando. Nessa página há um campo de texto que, com o evento onkeyup chama uma função . Esta função simula um campo do tipo select que vai tendo suas opções preenchidas à medida em que encontra equivalência com o conteúdo de um array. Um campo select criado diretamente na página seria exibido corretamente. Este select criado pela função, por sua vez, fica oculto pelo outro iframe. É essa a minha dúvida: como fazer para que esse campo select seja exibido corretamente. Quanto ao erro que mencionei, as linhas estão desabilitadas com "//". Não é um problema, pois quiz adaptar meu problemar num exemplo mais simples e não deu de todo certo. Na prática, eu coleto dados de um banco de dados. Espero que tenha sido claro agora. Obrigado, Lamenza
  7. Tenho uma página que congrega várias outras dentro de iframes. Num desses iframes, tenho um combo box. O problema ocorre quando aciono o combo e ele é exibido por traz de um iframe, não sendo possível ler suas opções. Já tentei atribuir, na página onde é construído o combo, uma propriedade "z-index", mas não ocorre mudança. Existe alguma maneira de posicionar esse elemento com uma hierarquia superior ao seu parent?
  8. Valeu OS! Sua sugestão deu certo. Desculpe não ter respondido antes...
  9. verifique se esta recebendo os valors corretamente e posta ae o resultado! ps: isto é só um exemplo!!! você pode fazer uma verificação desde o início do script!!! abraços Caro Ferscomig, A variável de controle do lop "for..." estava errada. O limite era 18 e não 19. Dai buscáva-se um campo que não existia e resultava em erro. Obrigado!
  10. Prezados, É possível uma página capturar um "div" de outra página? Exemplo, uma página de determinado jornal, exibe um box - enquadrado em uma div - com as condições de tempo. É possível carregar, na minha página, um iframe que exiba somente aquela div específica da outra página? Grato, Lamenza
  11. Os campos são do tipo "<input type='text' id='2_7' name='2_7' value=0>". Obter o valor dos campos não é problema. O problema está na soma dos mesmos.
  12. Tenho uma tabela construída com campos de formulário, aos quais são atribuídos IDs com o número da linha e o número de coluna (L_C). Ao digitar um valor num campo, desejo que - no evento onBlur - um outro campo seja atualizado com a soma dos demais campos da mesma linha. Escrevi uma função assim: function somacampos(campo,linha){ var posicao = campo.name.indexOf("_"); var nlinha = campo.name.slice(0,posicao); var soma = 0; for(x=7;x<=19;x++) { valor = eval(document.getElementById(nlinha + '_' + x.toString()).value.replace(trocaV,".")); soma = valor + soma; } camposoma = document.getElementById('soma_' + nlinha.toString()); camposoma.value=soma; } Ou seja, desejo percorrer as colunas de 7 a 19, obter o valor dos campos e somá-los, atualizando o campo soma, que também é identificado por seu número de linha (ID = soma_L). Uma função equivalente em VBScript funciona, mas não consigo fazê-la funcionar em javascript. A função em VB é para o lado servidor. No lado cliente, preciso usá-la com java. O que está errado?
  13. Tenho um função que recebe um número como parâmetro [ teste(1) ]. Este número é parte de um ID de um elemento contido em uma tabela, por exemplo 1_2. Ocorre que, quando recebo o parâmetro não consigo converter o mesmo numa ID válida, sempre resulta em erro. A função é mais ou menos assim: function teste(obj){ var vID = obj + '_2'; var campo = document.getElementByID(vID); vobjeto = campo.value; alert(vobjeto); } O que está errado? Lamenza
  14. Ao Mr. Lomack e aos amigos do fórum: Encontrei a solução. O código é esse: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Untitled</title> <script language="JavaScript" type="text/javascript"> <!-- function exibe(id,display){ cols = document.getElementsByTagName('td'); for(c=0; c<cols.length; c++){ if(cols[c].getAttribute('c') == id){ cols[c].style.display = display; } } } function trocacol(id,display){ cols = document.getElementsByTagName('td'); valor = document.getElementById('chk1'); for(c=0; c<cols.length; c++){ if(cols[c].getAttribute('c') == id){ cols[c].style.display = display; } } valor.checked="checked"; } //--> </script> </head> <body onload="trocacol('col2','none')"> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" ID="Tabela"> <tr> <td width="6%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Item</td> <td width="21%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Descrição</td> <td width="7%" align="center" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" bgcolor="#3399FF">Valor Total</td> <td width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Início</td> <td width="1%" style="font-family: Angsana New; font-size: 2 mm; border-style: solid; border-width: 0" bgcolor="#C0C0C0" valign="top"> <input type="checkbox" value="col2" id="chk1" onclick="e=(this.checked)?'':'none';d=(this.checked)?'none':'';exibe(this.value,d);exibe('col1',e);"></td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Jan</td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Fev</td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Mar</td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Abr</td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Mai</td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Jun</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Jul</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Ago</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Set</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Out</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Nov</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Dez</td> <td width="8%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Acumulado</td> <td width="8%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#3399FF">Saldo</td> </tr> <tr> <td width="6%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#00FFFF">&nbsp;</td> <td width="21%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#00FFFF">&nbsp;</td> <td width="7%" align="center" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" bgcolor="#00FFFF">&nbsp;</td> <td width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#00FFFF">&nbsp;</td> <td width="1%" style="font-family: Angsana New; font-size: 2 mm; border-style: solid; border-width: 0" bgcolor="#C0C0C0" valign="top">&nbsp;</td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td c="col1" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td c="col2" width="7%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#FFFFCC">&nbsp;</td> <td width="8%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#00FFFF">&nbsp;</td> <td width="8%" style="font-family: Arial; font-size: 7pt; font-weight: bold; color:#FFFFFF" align="center" bgcolor="#00FFFF">&nbsp;</td> </tr> </table> </body> </html> Espero ajudar aos demais. Abraços, Lamenza
  15. Obrigado Mr. Lomack! Vou avaliar a sua sugestão. Acho que dá certo! Depois posto aqui um comentário. Um abraço, Lamenza
×
×
  • Create New...