Ir para conteúdo
Fórum Script Brasil

Danilo Moraes

Membros
  • Total de itens

    171
  • Registro em

  • Última visita

Tudo que Danilo Moraes postou

  1. Existem inumeras possibilidades de se fazer isso (aqui eu blefei ^^) Tu pode usa o metodo scrollTo(CoordenadaX, CoordenadaY) neste caso, se o que você quer esta 50px abaixo do inicio da pagina, você pode fazer: pagina.scrollTo(0,50); Tem o metodo scrollBy(), so que ele adiciona os pixel que tu der como parametro, se eu fizece: pagina.scrollBy(0,50) E a pagina estivece a uns 20px rolada pra baixo, no final dessa funcao ela estaria a 70px rolada pra baixo: 20+50... Tu ainda pode usar ancoras, e para ir ate a ancora, existe mais alguns meios. ehhehehe Pode fazer a ancora na pagina que vai ser chamada por window.open, e fazer com que essa pagina chame a ancora. Pra chamar essa ancora, talvez de pra fazer assim: var janela = window.open(parametros aqui); janela.window.location += "#ancora"; Eu ainda não testei esse ultimo codigo que postei, mas acredito que de certo levando em consideracao que é assim que voce vai ate uma ancora usando links... Testa ai e depois nos fala qual foi o resultado. T+
  2. Como já falei, estou apenas contribuindo para que o forum seja mais limpo ao invés de ter perguntas desnecessarias. Mas se voce se sentiu agredido de alguma forma, me desculpe, não é nada pessoal. T+
  3. O seu html pode ser configurado com o charset ISO-8859-1, mas e o arquivo onde eles foram feitos esta com essa codificacao tmb? Qual programa tu ta usando pra editar o seu site? Nesse programa, tu tmb tem que configurar o charset... T+ Edt: porque essas letras maiusculas no titulo??? Para com isso cara, não e por ter letras maiusculas que vai chamar mais a atencao, muito pelo contrario. Eu fico com um pe atras na hora de entrar num tópico desses =S
  4. Qual era o problema? Sempre e bom dizer como você resolveu, fala ai pra gente. T+
  5. Opa, beleza cara? Me deculpe a demora, mas tive meio ocupado durante essa semana, e não pude dar muita atencao a sua funcao. Foi so hoje que consegui pega-la pra dar uma olhada. Eu estava aprimorando um pouco ela, porque a principio pensei que tu tivece se esquecido de referenciar o outro select ou coisa assim, então acabei deichando ela mais robusta com relacao aos parametros que ela pode receber. Ai me deu na telha de instalar o IEca aqui. Eu uso linux, porque realmente prefiro, os desenvolvedores todos deveriam usar linux!! Mas o meu pc aqui (notebook) ta uma naba... Drive de CR-ROM não funciona, windows que tava instalado nele tmb não funciona mais, e o linux já ta indo pro beleleu tmb... Tudo aqui no meu computador se arrasta :( Mas decedi instalar/emular o IEca6.0 pra ver se a funcao que eu fiz funcionava nele. Foi com extrema dificuldade que eu debuguei o script para o IEca porque de 2 em 2min o pc travava :(. Bom, de inicio foi facil achar o problema: O IE não estava aceitando a seguinte expressao: option.text = "TextoParaOption". Tentei de diversas maneiras inserir a propriedade text para os options no IE e ainda assim ele não funcionava, acontecia bem o que tu tinha dito: ficava apenas os espacos em branco. Isso significava que os options estavam sendo criados, mas não estava sendo inserido o texto. Eu ate conseguia inserir um valor para o option com a expressao: option.setAttribute("value","valor"), mas o mardito text não fungava... então comecei a procurar por tutoriais na net sobre inserir a propriedade text em options no IE, e todos os foruns que achei essas perguntas, eles não tinham sido respondidos :( Foi ai que virei o boné pra tras (by Falcao :P ) e comecei a fazer o que mais gosto: debugar e achar a solucao. Comecando, eu testei esse script que é a maneira que eu sempre utilizei pra criar options dentro de um select: <script type="text/javascript"> function teste(text){ var select=document.getElementById('anos'); var option=document.createElement("option"); option.text = text; select.appendChild(option); } </script> <select id="anos"> <option value="" selected="selected">Escolha...</option> <option value="2010">2010a</option> <option value="2009">2009</option> <option value="2008">2008</option> </select> <input type="button" onclick="teste('teste')" /> Bom, é uma funcao bem simples, que quando chamada (quando clicar o botao) vai "pegar" o select anos, criar um elemento option, inserir o texto passado como parametro para a funcao e inserir o option no select. No FF funciona perfeitamente, mas no IEca, a propriedade text parece nula :( Ai fiquei me perguntando, como poderei inserila de outra maneira? A funcao setAttribute funciona apenas para atributos de um elemento, e tecnicamente, text não é um atributo, e sim o "conteudo" do elemento. Tentei tmb o innerHTML dessa maneira: option.innerHTML = text, mas tmb não deu (dessa vez nem no FF não funcionou). então eu estava navegando nuns sites sobre selects, e vi que algumas pessoas criavam os options apenas instanciando-os como objetos da seguinte maneira: var select = new Option("Text","Value"); então eu fui tentar utilizar isso no IEca, e funcionou!! hehehehe Se alguém souber me dizer com exatidao os motivos de o porque o IE não aceitou nem innerHTML e nem a propriedade text, ficarei bem grato mas o importante e que achei uma solucao para resolver este problema. Ai depois que descobri a maneira de se inserir o Text nos options, a parte de enquadra-lo no script e a mais facil ^^ Veja como ficaria: //script original: var option = document.createElement("option"); option.setAttribute("value",ano); option.text = ano; anomodveiculo.appendChild(option); //script atualizado: anomodveiculo.options[anomodveiculo.options.length] = new Option(ano, ano); So para ficar mais facil de intender, anomodveiculo é o select. options é uma propriedade, que é um array contendo todos os options de um select. E a propriedade length, sempre me retorna a posicao no array do ultimo elemento +1. Isso porque o array comeca no 0 e o length comeca no 1. então se eu selecionar o option usando length, sempre vai me retornar uma posicao abaixo da ultima. então eu apenas selecionei o length deste select usando: anomodveiculo.options.length. No final, instanciei o objeto passando para text e value o mesmo valor. No final o script completo fica assim: <script language="JavaScript"> function atualizaAnoModVeiculo(valorAno, elemento, qtd, ordem) { if(typeof valorAno=="string" && valorAno!="")//checa se a opcao escolhida não é a opcao padrão, ou seha, a opcao sem valor valorAno=parseInt(valorAno); else if(valorAno=="") return; var dest=document.body; if(typeof elemento=="string") { if(elemento.charAt(0)=="#") { dest=document.getElementById(elemento.substring(1,elemento.length)); elemento=undefined; } else { var anomodveiculo = document.getElementById(elemento); } } else if(typeof elemento=="object") var anomodveiculo=elemento; if(elemento==undefined) { var id="anomodveiculo";//id do elemento criado pela funcao var select = document.getElementById(id); if(select==undefined) {//vai passar por esta funcao apenas na primeira vez select = document.createElement("select"); select.setAttribute("id",id); select.setAttribute("name",id); dest.appendChild(select); } var anomodveiculo = select; } qtd = typeof qtd=="string"?parseInt(qtd):qtd; ordem = ordem==false?false:true; function removeAllChilds(elm) { while(elm.firstChild) elm.removeChild(elm.firstChild); } removeAllChilds(anomodveiculo); if(ordem) {var i=0; var j=0} else {i=-qtd; qtd=0; var j=-1} for(; i<qtd; i++) { var ano = valorAno+Math.abs(i)+j; anomodveiculo.options[anomodveiculo.options.length] = new Option(ano, ano); /*var option = document.createElement("option"); option.setAttribute("value",ano); option.text = ano; anomodveiculo.appendChild(option);*///essa parte aqui não funciona no IEca... } } </script> <select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, 'anomodveiculo', 2, true)"> <option value="" selected="selected">Escolha...</option> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> <option value="2006">2006</option> <option value="2005">2005</option> </select> <select id="anomodveiculo"></select> Bom, agora vem a parte menos ruim ^_^ Explicar as novas funcionalidades desta funcao. Eu modifiquei ela porque a principio achei que tinha ficado dificil de usa-la, então adicionei algumas coisas, outras eu tirei e mechi nela pra que tivesse uma melhor estrutura. Agora ela esta mais "rapida", ou seja, carrega variaveis e outros valores apenas quando necessario, acredito que esteja bem otimizada ^^. As novas funcionalidades que adicionei, alem do proprio codigo da funcao que esta mais estruturado, é o segundo parametro da funcao, a referencia ao elemento. Na versao anterior, você tinha que ter um elemento select já criado na pagina. Na versao atual, você não precisa te-lo, a funcao cria ele pra você se ele não estiver ali... So lembrando o prototipo da funcao: void atualizaAnoModVeiculo(<number/string>,<HTMLelement/string>,<number/string>,[boolean]); então, ali no segundo ele agora aceita referencia ao elemento onde você quer criar o select, ao proprio body, referencia como objeto mesmo, ou como string/id. Vou dar alguns exemplos: <select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, 'anomodveiculo', 2, true)"> <option value="" selected="selected">Escolha...</option> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> <option value="2006">2006</option> <option value="2005">2005</option> </select> <select id="anomodveiculo"></select> Esse aqui e o normal, igual da outra funcao onde tu coloca uma string, ou ate um getElementById para passar a propria referencia ao objeto. Olha esse outro aqui: <select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, '#aqui', 2, true)"> <option value="" selected="selected">Escolha...</option> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> <option value="2006">2006</option> <option value="2005">2005</option> </select> <div id="aqui"></div> Repare que se voce não tiver criado o select, você tem que ao menos dizer aonde você quer que ele seja criado. Se voce quer que ele seja criado dentro de um div por exemplo, basta apenas criar o div, e dar um atributo para ele. E para dizer para a funcao que tu quer criar dentro daquele div, so precisa digitar um "#" (tralha) na frente do nome, que ai sera criado o select ali... No exemplo que passei, um select sera criado dentro do div: "aqui". E a ultima opcao, não menos importante ^_^ : <select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, undefined, 2, true)"> <option value="" selected="selected">Escolha...</option> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> <option value="2006">2006</option> <option value="2005">2005</option> </select> Voce não precisa setar nada, apenas escreva undefined (sem aspas) no local, que o select sera criado depois de todos os elementos html da pagina. Se voce quer apenas deichar os selects sozinhos na pagina sem maisn nenhum elemento, essa é a melhor propriedade. Mas se quiser colocar de maneira organizada no local que tu quer determinar numa pagina, ai e melhor usar o # ou referenciar um select já criado. Nossa, eu sempre quando comeco me empolgo, né? :( Desculpa esse texto gigante aqui, mas depois do trabalho que tive pra faze a funcao, quero que você fique sabendo de todos os detalhes!! uashusadhuasdhudsah T+
  6. É, agora sim vi a lerdeza ^^ Bom, logo de inicio, o firebug encontrou muitos erros. Eu não posso debuga-lo 100% pois não possuo o internet explorer aqui, estou usando linux e emulei apenas o IE6. Meu pc e bem antigo, e quando abro o IE6 aqui, em 2min eu tenho que reinicia o pc :( então vamos apenas aos bugs mais superficiais... o primeiro erro que ele acusou esta na linha: 3714 (unterminated string literal) compileMatcher: function() { this.match = new Function('element', 'if (!element.tagName) return false; \ element = $(element); \ return ' + this.buildMatchExpression()); }, Acredito eu que sejam essas contra-barras ai... O que exatamente elas fazem? Foi você que fez esta funcao? tenta tira-las dai pra ver se esse erro para... O outro erro que esta apontando é no arquivo: destn.php (linha 414) erro= vivvoRotatingHeadlines is not defined Fui nessa linha ai e peguei o seguinte codigo: var rotating_headlines_tabs = new vivvoRotatingHeadlines('rotating_headlines', 6); Aonde exatamente voce criou a funcao vivvoRotatingHeadlines? Digo funcao porque no javascript, as classes não passam de funcoes mas onde exatamente esta definido esta classe? Posso estar errado, mas sera que o nome não seria vivo ao invés de vivvo? Talvez tenha ocorrido um erro de digitacao, não sei :P Estou apenas supondo. Mas olha, esse teu site ta MUITO SUJO, tem muito codigo espalhado por ele, esta estremamente complicado de debugar ele :S Tenta concertar isso, e talvez diminua um pouco os erros. Sobre a lerdeza, duvido que isso va diminuir a lerdeza, são apenas erros que encontrei. Procure nos dizer o que exatamente o seu site faz enquanto esta sendo carregado... Talvez com essa informacao possamos identificar o que esta acontecendo. T+
  7. É impressao minha ou o proprio arldin já tinha feito um tópico sobre isso?? ^^ Cara, aqui realmente é um local onde os amigos se ajudam... Ta ai o Jonathan que não me deixa mentir, eu mesmo já fiz diversas funcoes para pessoas aqui do forum, estou terminando uma agora sobre select dinamico. Umas ate que nem responderam o tópico depois que postei elas =( (pucho uma brecha para a funcao que mostr imagens aleatorias numa tabela ):) Mas o que não gosto, é ser feito de capacho :S Eu quero ajudar este forum a crescer, eu nunca fui muito de ficar participando de foruns, este deve ser o 3 que participo ativamente em toda minha vida e gostei bastante dele pois achei ele bem organizado e com moderadores MUITO ATIVOS! Tanto gostei que quero ajudar pra que ele fique cada vez melhor, por isso dou alguns puchoes de orelha as vezes ^^ Mas não se ofenda não, isso tudo e para crescermos juntos. T+
  8. Poderia fazer uma mesclagem das 2 tecnologias: client-side e server-side... De inicio, deicha padrão o link que mudara o href da tag link chamando um arquivo (talvez php) que mudara o estilo da pagina e deicha uma funcao em javascript no onload da pagina, mudando o atributo href do link que muda o estilo da pagina, para a funcao javascript que faz isso. Algo assim: <script type="text/javascript"> <!-- function muda_estilo() { var link_que_muda_estilo = document.getElementById("linkA"); link_que_muda_estilo.setAttribute("href","java script: funcaoQueTrocaraOHrefDaTagLink()"); } window.onload = muda_estilo; --> </script> Isso funciona basicamente como uma "validacao" de javascript. As tags de comentario html dentro da tag script, "tirarao" o javascript da pagina se o browser não aceitar javascript. A funcao pode parecer um pouco confusa, mas basicamente você tem que substituir o: funcaoQueTrocaraOHrefDaTagLink() para a funcao javascript que trocaria o estilo da sua pagina. E o link que trocaria o estilo da sua pagina, você deve deichar ele apontar para uma pagina no servidor que faria isso. Com isso você tem uma pagina segura para qualquer browser ;P T+
  9. não é stressado, apenas não queremos um forum sujo, com flood :S E sobre o erro na barra de status, no FF essa barra nem aparece, e no IE 6, o seu site nem abre :S No IE 6 so aparece aquela radio no inicio :S O IE7 não tenho aki. malz
  10. O exemplo que passei não funcionou porque aquela funcao retorna um array... Voce tem que atribuir esse array pra alguma variavel: $variavel = mysql_fetch..... E dessa maneira so vai pegar 1 registro, tu teria que colocar a funcao dentro de um loop pra pegr mais que um. T+
  11. Edit: Estava meio estressado, então vamos la: Se tu passo o link do site, pra que colocar o codigo dele aki? :S Isso tambem pode ser considerado como flood! Da uma lida sobre o que é flood: http://www.forumweb.com.br/foruns/index.ph...-o-que-e-flood/ então aqui vai uma licao para toda a sua vida: não posta codigos inteiros sem necessidade, nesse post, você poderia ter postado o link do site e os erros, so isso tava de bom tamanho... E sobre a lerdesa, não percebi nada... :S T+
  12. Puts, pergunta id... resposta id.... :S Olha, eu não discrimino as pessoas por não saberem, porque eu tmb não sei MUITAS coisas... Mas discrimino sim a preguica :( Esse assunto já foi falado so aqui no forum, milhares de vees, custa procurar um pouco? So digitar la no google: "numeros como dinheiro javascript" que garanto que vai te aparecer no minimo 100 sites com bons tutoriais... So vou ajudar com o nome desse efeito para aprimorar sua pesquisa: "mascarar string como dinheiro"... Esse efeito é o de mascara. A maioria dos tutos usa expressoes regulares, então já aconselho a estuda-las tmb T+
  13. http://www.youngpup.net/projects/dom-drag/ Visitem esse link pessoal.. Olhem que incriveis exemplos de js... Fiquei realmente bobo (já sou ate <_< ) de ver o exemplo 6, e o scroll do 4. hehehe :P Que acharam? Achei essa pagina, seguindo um link deste site: http://simblob.blogspot.com/2005/07/games-in-javascript.html Dem uma visitada la... Vale a pena ;) T+ Edit: Achei esse outro tmb: http://www.lutanho.net/play/jogos.html
  14. Testei mais ai da value nulo da value nulo mesmo digitando algo no campo text?
  15. então cara... como falei, cria um form dentro do iframe, muda o seu action para a url que você quer e então usa o metodo submit() para submetelo... Tu quer o codigo pronto? :S
  16. innerHTML é uma propriedade e ao um método... Mas alem de tentar usar o innerHTML, poderias tentar algo como appendChild()... janela.document.body.appendChild(elemento); não testei esse codigo, mas ve ai se funciona ;)
  17. não testei esse seu script, mas sera que não seria isso: <td><input id=totalgeral type="text" name="tfvbruto" onChange="valorLiquido(tfvliquido,this,tfvfrete,tfvtotal);" SIZE="9"></td> ali em vez de this, não deveria ser this.value? T+
  18. No calculo, acho que não é problema, né? Se queres saber como enviar o email, procura pela classe PHPMailer.... T+
  19. <style type="text/css"> .carregando { -moz-border-radius-bottomleft:5px; -moz-border-radius-bottomright:5px; -moz-border-radius-topleft:5px; -moz-border-radius-topright:5px; background:#FFFFFF none repeat scroll 0 0; border:8px solid #C4DAFF; left:38%; padding:10px; position:fixed; top:18%; width:220px; z-index:100001; } </style> <div id="carregando" class="carregando" style="display: none;"> Aguarde, carregando <img alt="Carregando" title="Carregando" src="http://www.apontador.com.br/produtos/images/home/loading2.gif?v=020920090946"/> </div> Como já falei algumas vezes, se querem saber como fazer algo que já existe, apenas procurem no codigo fonte :S E não estava dificil achar, esse era o segundo div depois de <body> =// Vamo pesquisar mais pessoal!! Bom, mas seguindo o assunto... No css, a unica coisa que talvez de alguma duvida são aqueles -moz-border-radius.... são propriedades proprias da mozilla que deicham cantos arredondados... Nesse exemplo ele deichou o zindex(parecido com a logica de camadas) em 1001, para que esse div ficase em cima de qualquer outro... A parte de estilos na minha opiniao e a mais dificil, o javascript é barbada :P Eu não testei fazer aki, mas la vai uma ideia de como fazer: Coloca esse div como o primeiro elemento do codigo, ficaria assim: <body> <div id="carregando" class="carregando" style="display: block;"> Aguarde, carregando <img alt="Carregando" title="Carregando" src="http://www.apontador.com.br/produtos/images/home/loading2.gif?v=020920090946"/> </div> E obviamente inclua o css. Repare que eu coloquei o elemento como block, para que o primeiro elemento a ser carregado, seja este div... E tenta colocar no body, o seguinte script: <body onload="document.getElementById('carregando').style.display='none';"> <div id="carregando" class="carregando" style="display: block;"> Aguarde, carregando <img alt="Carregando" title="Carregando" src="http://www.apontador.com.br/produtos/images/home/loading2.gif?v=020920090946"/> </div> Isso fara com que o div passe para display none assim que a pagina carregar por completo. O evento onload, so e disparado quando todas as imagens são carregadas... :P acho que é isso, testa aew e depois fala como ficou. T+
  20. mysql_fetch_array() coloca os campos de um determinado registro, no array... Pode tanto ser por numeros, que seria o proprio array como por mapas que seria com o nome do campo. Exe: Campos do DB= id | nome | senha com mysql_fetch_array() tu pode acessar assim: mysql_fetch_array(0)//vai retornar o id... mysql_fetch_array("id")//vai retornar o id... Olha, eu devo estar muito burro, mas literalmente não intendi o que tu quer =// Faz o codigo, e então mostra pra que eu possa ter uma ideia... Faz ate onde tu conseguir, que se eu entender te ajudo a termina-lo. T+
  21. <script language="JavaScript"> function atualizaAnoModVeiculo(valorAno, amv, qtd, ordem) { function removeAllChilds(elm) { while(elm.firstChild) elm.removeChild(elm.firstChild); } valorAno = typeof valorAno=="string"?parseInt(valorAno):valorAno; if(typeof amv=="string") var anomodveiculo = document.getElementById(amv); else var anomodveiculo=amv; qtd = typeof qtd=="string"?parseInt(qtd):qtd; ordem = ordem==false?false:true; removeAllChilds(anomodveiculo); if(ordem) {var i=0; var j=0} else {i=-qtd; qtd=0; var j=-1} for(; i<qtd; i++) { var ano = valorAno+Math.abs(i)+j; var option = document.createElement("option"); option.setAttribute("value",ano); option.text = ano; anomodveiculo.appendChild(option); } } </script> <!-- -- Aqui eu utilizei o this.value que vai passar o atributo value do item selecionado. -- Se tu quiser passar o text(texto que esta entre as tags <option></option>, use o seguinte: -- atualizaAnoModVeiculo(this.options[this.selectedIndex].text) --> <select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, 'anomodveiculo', 2, true)"> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> <option value="2006">2006</option> <option value="2005">2005</option> </select> Acho que a unica parte que precisaria comentar sobre como funciona, seria essa: if(ordem) {var i=0; var j=0} else {i=-qtd; qtd=0; var j=-1} Eu acho ate que nem vou falar muito, se não intendeu alguma coisa, so perguntar que explico melhor. Eu teria duas maneiras de se fazer essa funcao: Ou eu fazia um teste de condicao, se o ultimo parametro for true, o contador "i" do loop vai de 0 ate a quantidade maxima e se o parametro for false, i seria do tamanho de qtd e iria diminuindo ate chegar a zero. Como eu quis poupar codigo, fiz apenas um for que sempre vai incrementando. Eu apenas mudaria o sinal de i para negativo e de qtd para zero... já o j, é o seguinte: Quando o i vai de 0 ate qtd, ele faz assim por exemplo: 2009->2009+0 -> 2009 (i=0) 2009+1 -> 2010 (i=1) E i não vai chegar a 2 porque a condicao do for di que so vai continuar se i for menor que qtd, e adotamos nesse exemplo que qtd vale 2... já no inverso(quando o ultimo parametro é false) i passa a ser o valor negativo de qtd e qtd passa a ser 0. Agora vejam: 2009 -> 2009+2 -> 2011 (i=-2 Math.abs(i) = i sem sinal. Se i valer -2, passara a valer 2) 2009+1 -> 2010 (i=-1 com abs fica 1) Pronto, mostrei as duas linhas, so que não acabou mostrando o 2009 que nos queriamos. Pra ficar perfeito, teriamos que ter um +(-1) do lado de cada ano, somente quando o ultimo parametro for false. Por isso eu fiz a variavel "j", sempre que for falso, ela valera -1 senao valera 0. Ai ficaria assim: Parametro verdadeiro: 2009->2009+0+0 -> 2009 (i=0) 2009+1+0 -> 2010 (i=1) Parametro falso: 2009 -> 2009+2+(-1) -> 2010 (i=-2 Math.abs(i) = i sem sinal. Se i valer -2, passara a valer 2) 2009+1+(-1) -> 2009 (i=-1 com abs fica 1) Bem simples ^^ :rolleyes: Duvidas so perguntar. T+
  22. Desculpa ainda não poder responder, mas acho que ou eu não intendi a sua pergunta, ou você não intendeu a minha... Quais os campos do DB que tu quer mostrar quando selecionar um item do select? Onde você quer mostra-los? Logo abaixo do select? E sobre como buscar do DB, poderias fazer assim: O php montaria o select, e em cada propriedade value do option, tu coloca o id do usuario. Ex: <select onchange="mostraForm(this.value)"> <option value="1000">Danilo Moraes</option> <option value="1001">SK15</option> <option value="1002">Jonathan Queiroz</option> <option value="1003">Carlohcs</option> <option value="1004">Fulano</option> </select> Descontando a parte dos nomes que eu roubei aqui do forum>_> hehehehehe Veja que esse select teria que ser criado pelo php, e na mesma query que eu utilizo para por os nomes no select, eu já coloco os IDs.... Ai nesse caso eu estou usando a funcao mostraForm() pra chamar a pagina do servidor via ajax. Estou enviando pra essa funcao, o valor do option atual e essa funcao poderia enviar via get uma chamada pro servidor. Quando o php receber essa variavel por get, poderia realmente usar essa query que tu postou. Ela so tem um probleminha, não pode esquecer do FROM... hehehe Fica algo tipo assim: $sql = "SELECT nome,login,senha FROM tabela WHERE id_usuario = " . $_GET['id_usuario']; Ai so usar depois: mysql_query($sql); E depois usar a criatividade pra fazer o form... Pode ser via php, onde o php geraria todo o form usando por exemplo o mysql_fetch_array(mysql_query($sql)) e alguns echo pra fazer o form, ou tu poderia fazer um objeto JSON e enviar apenas o texto para o cliente e deichar que o javascript crie dinamicamente os campos... Ai vai do teu gosto. Se puderes explicar melhor, poderei ajudar melhor. hhehehe T+
  23. Tem certeza que ele esta ignorando o if?? Tentou colocar um alert("teste") logo depois desse if pra ver?? E o que significa aqueles onfocus=this.value=''??? você quer apagar o valor do campo?? E se o usuario acabou se esquecendo e clicou no campo sem querer, você vai apagar tudo? Oo E outra: return document.MM_returnValue, O que é isso? Que propriedade é essa aki? Se ta no onsubmit, deveria ser usado o retorno da propria funcao que valida o form... Da uma explicada maior aew sobre exatamente o que tu quer... T+
  24. já ouviu falar na tecnologia COMET? Acho bom tu dar uma olhada, porque ela e a que "menos ocupa banda" para chats... Trata-se de uma tecnologia que so faz requests ao servidor quando tem mensagens la... heheheheh Se não me engano, o framework que implementa essa tecnologia é o Dojo. Da uma pesquisada sobre isso... T+
  25. Opa! Primeiramente gostaria de te agradecer por ter feito essa pergunta. Eu estava fazendo algumas coisas chatas aqui, tava um verdadeiro tedio. Ai quando vi sua pergunta, fiquei animado em bolar isso... A funcao a principio é bem facil de se fazer... :( então eu decidi completa-la um pouco mais so para ter mais tempo de diversao... heheheheheh Aqui segue o codigo: <script language="JavaScript"> function atualizaAnoModVeiculo(valorAno, amv, qtd, ordem) { function removeAllChilds(elm) {//remove todos os filhos de um elemento while(elm.firstChild) elm.removeChild(elm.firstChild); }//fiz esta funcao para limpar o select antes de fazer a proxima insercao. valorAno = typeof valorAno=="string"?parseInt(valorAno):valorAno;//Se o parametro vier como string, passo pra numero. if(typeof amv=="string") var anomodveiculo = document.getElementById(amv); else var anomodveiculo=amv;//AnoModVeiculo (amv) qtd = typeof qtd=="string"?parseInt(qtd):qtd; ordem = ordem==false?false:true;//isso é para definir um valor padrão para o parametro ordem.Se nada for digitado, ele valera true removeAllChilds(anomodveiculo);//remove todos os filhos do select anomodveiculo para inserir os novos if(ordem) {var i=0; var j=0} else {i=-qtd; qtd=0; var j=-1}//meio dificil de explicar, mas chamo isso de espelhamento de valor. //com esse if, eu posso mudar a ordem em que serao mostrados os valores no select literalmente expelhando os valores.Ex: 5 sera -5 for(; i<qtd; i++) { var ano = valorAno+Math.abs(i)+j;//aqui eu faco o incrementos de i para formar os anos seguintes. //O metodo abs() da classe Math, e para mostrar o modulo de um numero, ou seja, o numero sem o sinal. Ex: Math.abs(-1) sera 1. //Se o parametro ordem for true, j valera 0 senao j valera -1; Esse j, eu chamo de ajuste para espelhamento. var option = document.createElement("option");//daqui ate o final, so a parte de criar o elemento, setar atributos e por no outro select. option.setAttribute("value",ano); option.text = ano; anomodveiculo.appendChild(option); } } </script> <!-- -- Aqui eu utilizei o this.value que vai passar o atributo value do item selecionado. -- Se tu quiser passar o text(texto que esta entre as tags <option></option>, use o seguinte: -- atualizaAnoModVeiculo(this.options[this.selectedIndex].text) --> <select name="anofabveiculo" id="anofabveiculo" onchange="atualizaAnoModVeiculo(this.value, 'anomodveiculo', 2, true)"> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> <option value="2006">2006</option> <option value="2005">2005</option> </select> Bom, eu comentei algumas coisas no codigo, e falarei um pouco da logica dessa funcao daqui a pouco... Vou agora falar sobre como usar a funcao. Aqui segue um protótipo dela: void atualizaAnoModVeiculo(<number/string>,<HTMLelement/string>,<number/string>,[boolean]); não sei se todos estao acostumados a ver protótipos de funcoes assim, e ainda não sei escrever dentro das normas um, mas basicamente, isso indica os parametros que a funcao aceita... Os que estao dentro de <> é porque são obrigatorios e os que estao entre [] são opcionais. E a barra(/) indica que pode receber qualquer um dos dois tipos de dados. Dentro dos <> o que vem primeiro, é o que a funcao da preferencia para uma melhor performance. por exemplo: atualizaAnoModVeiculo(2009, document.getElementById('umElemento'), 2, true) Esse é um exemplo da funcao com otimizacao maxima, ou seja, recebendo parametros dos tipos do exemplo, ela executará mais rapido do que colocar como string... Mas esse mais rapido, é questao de milesimos de milesimos de segundo. Mas a funcao não retornaria erro se voce escrevece assim: atualizaAnoModVeiculo("2009", "umElemento", "2") Reparem que nesse ultimo exemplo, eu omiti o ultimo parametro, isso porque a funcao aceita que seja omitido o ultimo parametro. O ultimo parametro é por padrão true. então escrever true ou omitilo, da no mesmo. Agora vamos falar um pouco sobre o que a funcao faz: Bom, ela recebe o primeiro parametro referente ao ano que foi selecionado no primeiro select... No codigo que eu mostrei a funcao, esta como this.value, isso significa que ela vai pegar o valor do atributo value do select... Isso significa que o atributo sera passado como string, mas como falei, a funcao aceita string tmb! ^^ Como segundo parametro, ela recebe o nome ou referencia ao campo select que tu quer que seja mostrado as datas. Da pra tanto por como getElementById como string(proprio nome do select). No terceiro parametro, voce passa o numero de datas que tu quer no outro select... No exemplo que voce deu, voce pediu apenas a data selecionada e a posterior. Isso significa que são 2 datas então tu pode colocar aquele valor como 2, mas aconselho a fazerdes testes para entender melhor esse terceiro parametro. O quarto parametro, é uma coisa terrivelmente legal! <_< Ele decide se as datas serao colocadas na ordem crescente ou decrescente. Se tu usar a data 2009, com o valor 2 e a ultima propriedade como true, a saida sera: 2009 2010 Se tu usar a data 2009 o valor 2 e a propriedade false, sera mostrado assim: 2010 2009 Acho que deu pra intender como funciona, né? Eu estou meio atrasado agora, então quando eu chegar em casa, explico como funciona o algoritmo pra essa funcao. T+
×
×
  • Criar Novo...