Ajax - Função rápida e simples

Postado por Micox - Náiron J. C. G..

19 Maio, 2006

Ae povo,

Vou começando devagar aqui no blog. Tô meio sem tempo por causa do "bendito" TCC, por isso vou postando soluções que eu já desenvolvi lá no fórum Imasters mas que não tiveram a merecida atenção. heheh
Agora o fórum da vez é o iEvolution. Postei esta solução lá. Visitem e tirem suas dúvidas sobre ela lá.

Bom, primeiramente vou postar algo que vai ajudar muito quem deseja parar de se preocupar com ajax.

Com esta minha função você não vai mais ficar se preocupando com instanciar, definir eventos de retorno, e toda aquela baboseira chata de 10 linhas que agente sempre tem que fazer na hora de usar o XMLHttpRequest.

Usem, testem e se tiverem algo a acrescentar, é só falar. Eu testei com sucesso no FF1.5 e no IE6.

Vantagens:

  1. Voce não precisa se preocupar com ficar instanciando ou coisa parecida. É só chamar a ajaxGet.
  2. Carrega também scripts javascript que vieram por ajax (exceto funções). Créditos para o skywalker.TO.
  3. Permite que voce carregue mais de um elemento ao mesmo tempo assincronamente.
  4. Permite que voce jogue o resultado da url em:
    • uma variável javascript,
    • diretamente no innerHTML de um elemento,
    • em um input
    • em um select sem se preocupar com nada.
  5. Você não precisa mais ficar se preocupando com a questão do cache.

  • Versão atual: 1.2
  • Atualizações futuras:
    • Melhorar o carregamento de javascripts que vierem pelo ajax usando a solução do pita.
    • Melhorar a parte de enviar caracteres acentuados usando o encodeURI
  • Forma de uso:
    • Coloque a função em um arquivo javascript e chame ele na página através do <script src="micoxAjax.js">
    • Chame a função assim: ajaxGet( sua_pagina [string] , variavel_ou_objeto_que_recebera_o_retorno [string ou object] , exibe_texto_carregando_ou_nao [true ou false])
  • Exemplos de uso:
    • Em um elemento qualquer: ajaxGet("http://www.suapagina.com/seuarquivo.htm",document.getElementById("div1"),true)
    • Em uma variável javascript: ajaxGet("http://localhost/lojavirtualfree/optionas.htm","document.getElementById('div2').innerHTML",false)
    • Em um input text: ajaxGet("http://localhost/lojavirtualfree/optionas.htm",document.getElementById("input1"),false)
    • Em um select (preenche com options): ajaxGet("http://localhost/lojavirtualfree/optionas.htm?viva",document.getElementById("select1"),true)

Enfim, a função. Copiem e colem ela em seu micoxAjax.js:

function ajaxGet(url,elemento_retorno,exibe_carregando){
/******
* ajaxGet - Coloca o retorno de uma url em um elemento qualquer
* Use a vontade mas coloque meu nome nos créditos. Dúvidas, me mande um email.
* A função é grande, coloque-a em um arquivo .js separado.
* Versão: 1.2 - 20/04/2006
* Autor: Micox - Náiron J.C.G - micoxjcg@yahoo.com.br - elmicox.blogspot.com
* Parametros:
* url: string; elemento_retorno: object||string; exibe_carregando:boolean
*  - Se elemento_retorno for um elemento html (inclusive inputs e selects),
*    exibe o retorno no innerHTML / value / options do elemento
*  - Se elemento_retorno for o nome de uma variavel
*    (o nome da variável deve ser declarado por string, pois será feito um eval)
*    a função irá atribuir o retorno à variável ao receber a url.
*******/
    var ajax1 = pegaAjax();
    if(ajax1){
        url = antiCacheRand(url)
        ajax1.onreadystatechange = ajaxOnReady
        ajax1.open("GET", url ,true);
        //ajax1.setRequestHeader("Content-Type", "text/html; charset=iso-8859-1");//"application/x-www-form-urlencoded");
        ajax1.setRequestHeader("Cache-Control", "no-cache");
        ajax1.setRequestHeader("Pragma", "no-cache");
        if(exibe_carregando){ put("Carregando ...")    }
        ajax1.send(null)
        return true;
    }else{
        return false;
    }
    function ajaxOnReady(){
        if (ajax1.readyState==4){
            if(ajax1.status == 200){
                var texto=ajax1.responseText;
                if(texto.indexOf(" ")<0) texto=texto.replace(/\+/g," ");
                //texto=unescape(texto); //descomente esta linha se tiver usado o urlencode no php ou asp
                put(texto);
                extraiScript(texto);
            }else{
                if(exibe_carregando){put("Falha no carregamento. " + httpStatus(ajax1.status));}
            }
            ajax1 = null
        }else if(exibe_carregando){//para mudar o status de cada carregando
                put("Carregando ..." )
        }
    }
    function put(valor){ //coloca o valor na variavel/elemento de retorno
        if((typeof(elemento_retorno)).toLowerCase()=="string"){ //se for o nome da string
            if(valor!="Falha no carregamento"){
                eval(elemento_retorno + '= unescape("' + escape(valor) + '")')
            }
        }else if(elemento_retorno.tagName.toLowerCase()=="input"){
            valor = escape(valor).replace(/\%0D\%0A/g,"")
            elemento_retorno.value = unescape(valor);
        }else if(elemento_retorno.tagName.toLowerCase()=="select"){        
            select_innerHTML(elemento_retorno,valor)
        }else if(elemento_retorno.tagName){
            elemento_retorno.innerHTML = valor;
            //alert(elemento_retorno.innerHTML)
        }    
    }
    function pegaAjax(){ //instancia um novo xmlhttprequest
        //baseado na getXMLHttpObj que possui muitas cópias na net e eu nao sei quem é o autor original
        if(typeof(XMLHttpRequest)!='undefined'){return new XMLHttpRequest();}
        var axO=['Microsoft.XMLHTTP','Msxml2.XMLHTTP','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0'];
        for(var i=0;i<axO.length;i++){ try{ return new ActiveXObject(axO[i]);}catch(e){} }
        return null;
    }
    function httpStatus(stat){ //retorna o texto do erro http
        switch(stat){
            case 0: return "Erro desconhecido de javascript";
            case 400: return "400: Solicitação incompreensível"; break;
            case 403: case 404: return "404: Não foi encontrada a URL solicitada"; break;
            case 405: return "405: O servidor não suporta o método solicitado"; break;
            case 500: return "500: Erro desconhecido de natureza do servidor"; break;
            case 503: return "503: Capacidade máxima do servidor alcançada"; break;
            default: return "Erro " + stat + ". Mais informações em http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html"; break;
        }
    }
    function antiCacheRand(aurl){
        var dt = new Date();
        if(aurl.indexOf("?")>=0){// já tem parametros
            return aurl + "&" + encodeURI(Math.random() + "_" + dt.getTime());
        }else{ return aurl + "?" + encodeURI(Math.random() + "_" + dt.getTime());}
    }
}
function select_innerHTML(objeto,innerHTML){
/******
* select_innerHTML - altera o innerHTML de um select independente se é FF ou IE
* Corrige o problema de não ser possível usar o innerHTML no IE corretamente
* Veja o problema em: http://support.microsoft.com/default.aspx?scid=kb;en-us;276228
* Use a vontade mas coloque meu nome nos créditos. Dúvidas, me mande um email.
* Versão: 1.0 - 06/04/2006
* Autor: Micox - Náiron J.C.G - micoxjcg@yahoo.com.br - elmicox.blogspot.com
* Parametros:
* objeto(tipo object): o select a ser alterado
* innerHTML(tipo string): o novo valor do innerHTML
*******/
    objeto.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id="micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display="none"
    if(innerHTML.toLowerCase().indexOf("<option")<0){//se não é option eu converto
        innerHTML = "<option>" + innerHTML + "</option>"
    }
    innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span")
    selTemp.innerHTML = innerHTML
    for(var i=0;i<selTemp.childNodes.length;i++){
        if(selTemp.childNodes[i].tagName){
            opt = document.createElement("OPTION")
            for(var j=0;j<selTemp.childNodes[i].attributes.length;j++){
                opt.setAttributeNode(selTemp.childNodes[i].attributes[j].cloneNode(true))
            }
            opt.value = selTemp.childNodes[i].getAttribute("value")
            opt.text = selTemp.childNodes[i].innerHTML
            if(document.all){ //IEca
                objeto.add(opt)
            }else{
                objeto.appendChild(opt)
            }                    
        }    
    }
    document.body.removeChild(selTemp)
    selTemp = null
}

function extraiScript(texto){
//Maravilhosa função feita pelo SkyWalker.TO do imasters/forum
//http://forum.imasters.com.br/index.php?showtopic=165277&
    // inicializa o inicio ><
    var ini = 0;
    // loop enquanto achar um script
    while (ini!=-1){
        // procura uma tag de script
        ini = texto.indexOf('<script', ini);
        // se encontrar
        if (ini >=0){
            // define o inicio para depois do fechamento dessa tag
            ini = texto.indexOf('>', ini) + 1;
            // procura o final do script
            var fim = texto.indexOf('</script>', ini);
            // extrai apenas o script
            codigo = texto.substring(ini,fim);
            // executa o script
            //eval(codigo);
            /**********************
            * Alterado por Micox - micoxjcg@yahoo.com.br
            * Alterei pois com o eval não executava funções.
            ***********************/
            novo = document.createElement("script")
            novo.text = codigo;
            document.body.appendChild(novo);
        }
    }
}

A função oi postada originalmente aqui, com as devidas discussões e atualizações iniciais.
Agora postei ela aqui, onde devem prosseguir as discussões.

Té mais...

Marcadores: ,

E-mail Newsletter Feed RSS Resultado! Concursos Shopping Resultado

Não mande dúvidas nos comentários ou no meu e-mail. Mande elas para o fórum de desenvolvedores Webly. Tem mais gente lá gabaritada a responder e você não fica dependendo só do mico.


Comenta aí! Não cai o dedo e me incentiva a escrever mais. (47 comentários)





47 Comentários:

Anonymous Bruno Dulcetti disse... 19 Maio, 2006 23:02  
meio grande, mas parece legal... assim q der vou dar uma lida manera nisso ae... to precisando dar uma estudada em ajax... akele abraço rapaz...
Blogger Micox disse... 22 Maio, 2006 07:23  
Ok. Vou preparar uma matéria sobre ajax. Não será uma introdução como tudo que tem por aí...
Pretendo fazer uma matéria com os problemas comuns em ajax e como resolvi.
Obs.: Todos os que resolvi, eu coloquei aí nesta função pronta.
Anonymous Anônimo disse... 01 Agosto, 2006 14:29  
Ja usei esse Script e realmente funciona.. muito bála!!!!. meu site tá malvado!!!.
Um abraço.
Anonymous Mário Júnior disse... 05 Setembro, 2006 21:29  
Olá! Realmente muito bom esse script.

Gostaria de dar a sugestão de acrescentar uma função para envio de informações via POST.

Tentei adcionar esse recurso mas não consegui. Se alguem conseguir, colabore!

Abraços!
juninhog12@gmail.com
Blogger Micox disse... 06 Setembro, 2006 07:49  
Sim, pretendo fazer sim.
Assim que eu acabar a série sobre Menus CSS farei uma série sobre AJAX, como prometido aí acima.
Anonymous Anônimo disse... 13 Setembro, 2006 23:27  
Excelente!!! Você não faz idéia do quando essa solução irá me ajudar. Eu tava procurando isso faz tempo... vc fez tudo! Demais. Muito obrigado.
Anonymous Anônimo disse... 22 Setembro, 2006 13:11  
Parabéns pelo trabalho.
Anonymous Daniel Maceira disse... 24 Setembro, 2006 16:29  
Olá! Valeu pela função, carreguei 10 ajax de uma vez! =)
Gostaria de saber uma alternativa para acentuação das palavras... utilizar ASP no meio do texto, com o server.url ou htmlencode não acho q deva ser a melhor solução! Mesmo assim valeu!!!
Anonymous Daniel Maceira disse... 24 Setembro, 2006 16:39  
Nada como pesquisar! =)
Sua dica tbm: Response.Charset="ISO-8859-1"
Valeuuu!
Anonymous Anônimo disse... 18 Outubro, 2006 08:59  
Como processar o resultado, pra mim, o único resultado que vem é a string "Carregando..."
Blogger Daniel disse... 10 Novembro, 2006 14:02  
Olá! Gostaria de saber como fazer uma verificação usando o AjaxGet, retornar seu valor em uma variavel dentro do JavaScript e de acordo com o 'número' retornado, abrir um ou outro alert por exemplo. Valeu! tomatebr@hotmail.com
Blogger Ezequias disse... 24 Novembro, 2006 16:30  
Mto show!!
Alguem sabe de uma função como essa, assim facil de entender, que permita "favoritar" as páginas e usar o botão voltar? Valew...
www.ezequias.net
www.fxis.net
Blogger Jeferson.js disse... 04 Dezembro, 2006 17:18  
kara putz vc é d+ meu se possivel envia + ai pra nos ficarmos loko em desenvolver cada vez + ajax!!
ai kara tou comecando nessa area se puder e naum for pedir muito me manda + algo que eu possa estudar ajax, + assim o basico blz meu email é jeferson@operaintensa.com.br ,
meu vlw e continue assim um grande abraco e se precisar estamos ai vlw !!!
Blogger barucco disse... 06 Dezembro, 2006 11:38  
Cara, tem como eu conseguir preencher mais de um input com a mesma função ajaxGet colocada em um select?
Blogger Micox disse... 06 Dezembro, 2006 12:43  
Sim barucco. É só você chamar a função ajaxGet 2 vezes.
Anonymous Jorn disse... 13 Dezembro, 2006 18:46  
cara, estou com um problema em meu código...
estou querendo executar uma javascript mas preciso que aconteça isso somente apos carregar o conteúdo do ajax, sabe como posso fazer isso?

vls
Blogger Micox disse... 13 Dezembro, 2006 20:52  
@jorn

Procure sobre ajax síncrono (vc define o modo síncrono o 3o parametro da função open do objeto xmlhttprequest).

Para um help mais específico procurem o fórum iEvolution.
Ficar respondendo dúvidas nos comentários é ruim pois não há espaço para uma resposta mais completa.

Té mais.
Anonymous Jorn Filho disse... 15 Dezembro, 2006 03:36  
valeu mesmo assim cara...
vou dar uma olhada.

ajudou bastante...
Blogger Walter Cruz disse... 27 Dezembro, 2006 09:30  
Uau!

Grande, mas parece bacana a função :)
Anonymous Davi disse... 06 Janeiro, 2007 17:24  
Perfeito, cara! Parabéns. Agora desculpa a ignorância... o pq disso:

aurl + "&" + encodeURI(Math.random() + "_" + dt.getTime());

na função antiCacheRand? Segurança? UAI?
Blogger GAMEDICAS disse... 10 Janeiro, 2007 08:42  
Olá Micox, tenho uma dúvida sobre seu código.

Gostaria de saber como faço para passar valores para 2 layers no mesmo link, tipo: Quero atualizar o DIV conteudo e o DIV topo com valores diferentes passados na URL (por GET), como faço?

Algo do tipo: para o DIV conteudo passo o valor: "pagina1.asp?id=1&post=10" e para o DIV topo passo: "pagina2.asp?id=1&cat=2".

Tem alguma forma de passar valores diferentes para atualizar DIVs diferentes na mesma função?

Obrigado pela código, tá show de bola!

Abrs.
Blogger DIGIART disse... 23 Janeiro, 2007 11:32  
Gostaria de saber como faço pro ajaxget ler uma pagina q possua um script? tipo
http://www.digiartstudio.net/bondiboca/slide_home.php

quero q esta pagina carregue em uma div como faço? Já tentei de tudo e nada. Achei seu código massa porém não consegui fazer isso dá uma luz.
Blogger DIGIART disse... 23 Janeiro, 2007 11:47  
Gostaria de saber como faço pro ajaxget ler uma pagina q possua um script? tipo
http://www.digiartstudio.net/bondiboca/slide_home.php

quero q esta pagina carregue em uma div como faço? Já tentei de tudo e nada. Achei seu código massa porém não consegui fazer isso dá uma luz.

Se tiver uma solução por favor micox me ajuda ai meu e-mail: andynhoo@gmail.com meu msn andynhoo@hotmail.com valeu.
Anonymous viniciusjau disse... 23 Janeiro, 2007 15:14  
Ainda não testei.. sempre apanho pra fazer rodar esses codigos em ajax....
masi cara boa sorte com seu TCC
Blogger Micox - Náiron J. C. G. disse... 24 Janeiro, 2007 13:17  
Opa. Tamo de volta.

@davi
A função anticache é baseada em se colocar um número aleatório como parametro na url que será chamada pra forçar que o navegador sempre solicite uma nova versão da página chamada pelo ajax. Como a função random() não garante que o número seja sempre aleatório (ele pode ser repetir às vezes), eu prefiro garantir que seja aleatório de verdade adicionando uma data.

@gamedicas
É só chamar a função ajaxGet 2 vezes no mesmo evento.
Exemplo: onclick="ajaxGet(blabla);ajaxGet(blabla)"

@digiart
Você não deve ter lido meu tutoriai direito ué. hehehe
Meu código faz isso tudo aí que você quer sem complicação é só chamar a função ajaxGet.

@vinicius
Valeu cara. Terminei o bixo.


Valeu a todos ae. Voltei de férias agora e estou respondendo aos comentários no blog geral.
Blogger DIGIART disse... 24 Janeiro, 2007 13:29  
Eu acho q não fui claro em minha pergunta

o q eu quero é?

Clicar no link: Lista carregar no DIV abaixo essa pagina ai

http://www.digiartstudio.net/bondiboca/slide_home.php

Sendo q nessa pagina ai tem um PHP + JAVASCRIPT.

Testei de todas as formas com esse seu código todas sem exito, porém outras páginas deu de boa. Se você conseguir por favor me manda a solução. me add no teu msn andynhoo@hotmail.com
Blogger Micox - Náiron J. C. G. disse... 24 Janeiro, 2007 13:48  
Aaah, sim.
Saquei agora o motivo do seu problema.

É o seguinte:
você está usando document.write no código javascript desta sua página.

O método document.write, só é executado no load da página. Depois nem adianta tentar, ele não funfa. E quando funfa ele apaga a página inteira e só escreve o que ele quer.

A solução pra você é retirar o document.write. E jogar o conteúdo dele em uma variável.
Daí, após a variável estar preenchida com o que deve ser escrito, você altera o innerHTML de alguém usando esta variável.

Qualquer outra dúvida, pergunte no fórum.

té mais.
Anonymous Anônimo disse... 01 Fevereiro, 2007 08:27  
cara.. vc ja esperimentou fazer assim no execScript para não criar instancias do child... sendo que aqui da varios problemas dependendo do browser...faça isso

if (window.execScript) {
window.execScript(codigo, "javascript")
} else {
window.eval(codigo);
}
Blogger Marcelo disse... 14 Fevereiro, 2007 12:01  
Olá Micox.
O ajax possui algum problema quando usa-se o AC_RunActiveContent.js para exibir os SWF. Vc teria algum exemplo para nós? Pois testei o exemplo que vc possui, e ao colocar o swf, o mesmo não aparece.

Abraços
Marcelo
Blogger Micox - Náiron J. C. G. disse... 14 Fevereiro, 2007 15:03  
Olá Marcelo.

Bom, eu nunca testei ajax com flash pra ver o que dava não.
Mas quanto ao seu problema com o AC_RunActiveContent.js, é porque dentro deste arquivo há vários document.write e AJAX e Document.write não trabalham juntos de forma alguma (algum dia eu explico).

O AC_RunActiveContent.js usa document.write para burlar a restrição do IE inserindo o objeto flash depois do carregamento da página.

Como ajax já é carregado após o carregamento da página principal VOCÊ NÃO PRECISA USAR o AC_RunActiveContent.js para carregar seus flash's.
É só colocar o código do objeto diretamente no seu (x)html.

Testae e veja.
Blogger Marcelo disse... 15 Fevereiro, 2007 09:27  
Valeu grande fera. Ainda não testei a dica, mas muito obrigado pelo retorno.
[]´s
Anonymous Beatriz disse... 24 Julho, 2008 15:23  
Olá...primeiro agradecer pelo codigo, tem me ajudado mto, era exatamente o q eu precisava. Mas estou com um problema. Tenho uma pagina q carrega dentro da div. Nesta pagina tenho dois campos (input text e select). No IE esses campos aparecem, mas no FF no way. Se carrego a pagina normal, blz funfa, mas se carrega na div...nada....Poderia me ajudar nessa solução, por favor. MTO Obrigada....
meu email: beatrizdesigner@gmail.com
Anonymous Rui disse... 05 Agosto, 2008 20:45  
Olá Micox,

Parabéns, é um excelente script!
Você poderia me explicar que parte da função é responsável por fazer várias requisições assincronas, essa parte eu não consegui entender, apesar de ver funcionando.

Agradeço a atenção,
Rui
Blogger Micox - Náiron J. C. G. disse... 06 Agosto, 2008 08:19  
É só você chamar a função várias vezes.
Anonymous Rui disse... 07 Agosto, 2008 17:41  
Olá Micox, eu sei que tem que chamar a função várias vezes (uma para cada requisição), eu estava usando uma função que formava uma fila, e em chamadas assincronas com várias requisições ao mesmo tempo, ela só executava a última requisição e mostrava a mensagem de erro 'readyState é nulo ou não é um objeto' (sincronicamente ela funcionava), talvez sua função funcione em várias chamadas assincronas pelo ordem em que ela executa as várias funções que existem dentro dela. De qualquer forma, ela é ótima, parabéns!!!
Blogger Renan Andrade disse... 07 Outubro, 2008 12:00  
Cara será que é algum problema meu, não estou conseguindo usar o script no meu select, exemplo:

Quando selecionar uma opção do select chama uma pagina numa div com uma variável setada dependendo do que escolher no select. Porém pra fazer isso eu preciso definir o 'onchange' no meu select e não no option e isso anula a possibilidade da variavel com uma valor mutavel. Como poderia resolver isso com sua função ????
Blogger Micox - Náiron J. C. G. disse... 10 Outubro, 2008 14:20  
Renan, não entendi sua dúvida. POr favor poste ela no fórum: forum.ievolutionweb.com

té mais.
Blogger ~ Jotah. disse... 24 Dezembro, 2008 13:04  
Peguei seu conteúdo e fiz um teste simples para o ajaxGet carregar uma página teste2.html na div teste, e simplesmente nao foi.

Clique aqui


E sim, teste2.html e a div teste existem. Testei no Firefox 3.0.*

(O onclick tá alterado por causa do sistema do blogger)

Se quiser me mandar resposta por e-mail, me add no MSN (jotacms@hotmail.com), porque tem uns 3 anos que não leio e-mail.
Blogger Macgayver Armini disse... 29 Dezembro, 2008 12:17  
Esta postagem foi removida pelo autor.
Anonymous Anônimo disse... 29 Dezembro, 2008 12:18  
Ola, sempre usei Iframes, e sempre tive problemas quanto ao fundo, formatação e ainda sobre o tamanho do carregamento da página. E gostei muito do seu script, parabéns, agora, gostaria de tirar uma dúvida, no site da empresa que eu trabalho, todas as páginas carregam dentro de um iframe,até páginas em php, só que no seu script, eu consegui carregar á página do menu legal, porem a página que foi carregada para a próxima não fica dentro, tipo assim:


Menu | Página 1
.... | Página 1 | Página 2.

ou seja como eu faço para a página 2 ficar ainda no mesmo local da página 1?
Blogger Leandro Brasil disse... 07 Janeiro, 2009 16:34  
Ola Micox,
cara shoow de bola seu script, sem palavras, show de bola mesmo...

cara teria como voce dar um exemplo de como passar valor para uma variavel javascript usando a função..

desde já agradeço...
Blogger Micox - Náiron J. C. G. disse... 07 Janeiro, 2009 16:44  
CAra, essa funcionalidade tá meio bugada.
O que pode ser feito é você alterar a parte onde tem o readyState e colocar sua funçaõ lá pra receber o retorno do ajax.

Pergunda lá no fórum webly que dá pra responder mais detalhadamente.

Té mais.
Blogger Leandro Brasil disse... 25 Fevereiro, 2009 13:41  
Ola Micox dawe Blz ?!

cara estou tendo um problema com a tag "select", tipow depois de carregar uma pagina com o ajaxGet, ai os campos "select" travam, por exemplo se o "select" tem 5 options ele fica selecionado o primeiro e não deixa selecionar os outros, awe só depois de um tempo que é possivel selecionar os outros....

você sabe o pq disso ?
valew té mais..
Blogger Micox - Náiron J. C. G. disse... 25 Fevereiro, 2009 14:08  
Leandro, posta sua dúvida no fórum. Se possível com link pragente olhar e ver qualé o boró.
Blogger Leandro Brasil disse... 25 Fevereiro, 2009 14:20  
Esta postagem foi removida pelo autor.
Anonymous Anônimo disse... 20 Março, 2009 21:27  
é facil usar $variaveis e manipular dados de formulario com o micoxajax?

como chamo o link?

cauechassot@yahoo.com.br
Anonymous Braulio Cesar disse... 23 Abril, 2009 16:31  
Muito bom isso, me ajudou pra caramba em alguns trabalhos.
Um exemplo que é aonde eu conheci é no site oficial do Victor e Leo

Escreva seu comentário (Leia abaixo).

Deixe seu email se quiser resposta por email também, pois o sistema de comentários do Blogger não me informa :( ... Ah, também pode deixar o endereço do seu blog ou site no comentário.
Já estou em outro sistema de blog melhor (wordpress). Se quiser comentar lá também :)
Dúvidas, só no fórum Webly.

<< Ir à página principal e ver as novas postagens.

El Micox - Alguns direitos resevados - Licença Creative Commons

Veja! Este é apenas um espelho do blog real elmicox.com. Assinando aqui, na verdade você está assinando lá.