Ir para conteúdo
Fórum Script Brasil

PyetroSafe

Membros
  • Total de itens

    12
  • Registro em

  • Última visita

Sobre PyetroSafe

Perfil

  • Gender
    Male
  • Location
    Marilia SP

PyetroSafe's Achievements

0

Reputação

  1. Olá galera tudo bem? Estou trazendo novamente a vocês um plugin desenvolvido por mim... Desta vez de forma mais simples, mais pratica e mais eficaz, o plugin trata fácilmente as Classes no html adicionando eventos Over e Focus sem ter que criar linhas de script para cada elemento a receber tais eventos. Basta apenas fazer a chamada do plugin e nos elementos HTML aplicar dentro do atributo "class" a chamada do evento, exemplo: <span class="over: Classe1"> Span 1 </span> ou <input class="focus: Classe1" type="text" />, nestes casos quando span receber over e input receber focus, as classes serão alteradas para Classe1_over e Classe1_focus, bastando por no CSS as configurações nessa situação do elemento... Basta chamar o plugin no corpo do documento, passando no parametro o valor 1 para cada evento que quer ativar. Os eventos são "Over", "Focus" e para formulários a função "tabAsEnter" que pula o foco para o próximo elemento input ao pressionar Enter... Pode fácilmente também aplicar os eventos para apenas determinados elementos passando este no filtro ou não passar nenhum filtro para usar o evento em todos os elementos. Abaixo o exemplo da chamada do plugin: $(function(){ $.pSFut_Utils({ over: 1, // filterOver:null, focus:1, // filterFocus:null, tabAsEnter:1 //, filterTab:null }); Para mais informações acessem: // Versão incial do plugin http://pysafe.blogspot.com.br/p/plugin-psf...uery-focus.html // Versão 3.0.2 com correções do plugin http://pysafe.blogspot.com.br/p/plugin-psfut-versao-302.html
  2. usa jQuery.noConflict(); eu tive o mesmo problema... e resolvi assim: Aí, a partir dessa configuração nova, tudo que for usado com jQuery, você vai usar, nesse meu caso, "j$" no lugar de apenas "$"... Espero ter ajudado ^_^
  3. Bom galera, ainda ninguém se manifestou mas tudo bem... Continuo aguardando comentários... Vamos lá, eu estou usando meu plugin no site que estou desenvolvendo... e tive a necessidade de usar o evento Change, com isto, eu atualizei o plugin trazendo algumas melhorias... 1.1.2 - Adicionado evento Change; (14/03/2012 10:50) ... change : function(el) { return this.prc(el,"Change")} ... if(p.change(a(this))) { a(this).change(function(e){ e.preventDefault(); E(p.change(a(this)),"Change",a(this)); }); } ... 1.1.3 - Adicionado replace para váriavel f na função E, para procurar comandos 'this' e trocar por 'h' conseguindo reconhecer o elemento que chamou o evento; (14/03/2012 10:50) ... function E(f,g,h){ try{ var s=f.replace(/this/gi, 'h'); eval(s)}catch(e){ ... 1.1.4 - Alteração no modo da separação entre o evento chamado e o script deste evento, permitindo agora criar scripts mais complexos; (14/03/2012 14:20) ... for(i in s) { var pos = s[i].indexOf("=",0); var t = new Array(); t[0] = s[i].substr(0,pos); t[1] = s[i].substr(pos+1,s[i].length); for(j in t) { if(prop==t[0]) return t[1]; } } ... Fiz logo abaixo uma página teste para verem as atualizações... <html> <head> <style type="text/css"> .A { text-decoration: underline; } .A_over { background: #CCCCCC; } .B, .B_over { color: #FF0000; } .B_over { background: #CCCCCC; color: #0000FF; } </style> &lt;script type="text/javascript" src="jquery-1.7.1.min.js"></script> &lt;script type="text/javascript" src="jquery.psRel.min.js"></script> </head> <body> <ul> <li name="1" rel="ClassHover=A!!Click=alert('Clk');"> TESTE 1 </li> <li name="2" rel="ClassHover=B!!DblClick=alert('DbClk Li 4')"> TESTE 2 </li> <li name="3"> TESTE 3 </li> </ul> <p id="a" rel="ClassHover=B!!Click=$('body').append('<p>Hello</p>');!!DblClick=alert('DbClk P b')"> P Teste 2 </p> <select name="sel_page" id="sel_page" rel="ClassHover=B!!Change=var a=50, b=20,c; c=a/b; alert(c/this.val())"> <option value="1"> Option 1 </option> <option value="2"> Option 2 </option> </select> </body> </html> Pra quem gostou, e tenho certeza que já tem gente se interessando pode usar a vontade. Logo abaixo vai o código completo do plugin psRel no modo min e estudo: Modo Min: /* ---------------------------------------------------------------------------- -*-*- JS Code document -*-*- Plugin: psRel Versão: 1.1.4 Desenvolvedor: Pyetro Sabaraense Ferreira da Costa Descrição: este plugin é uma tentativa de facilitar ainda mais a escrita do código por inserir diretamente no html as opções desejadas de class com over, click, et... < 1.00 - Versões do desenvolvimento do código, sendo que a principal alteração foi de transformar o código que era uma simples chamada de uma "váriavel literal como objeto" para o plugin jQuery. Outra alteração foi a troca do separador ';;' por '!!' entre os eventos chamados no atributo "rel". 1.0.0 - Terminado o plugin funcionando perfeitamente, com os eventos Click, Class e ClassHover; 1.0.1 - Adicionado o methodo dblclick; 1.1.1 - Adicionado a função E para agrupamento da função try; 1.1.2 - Adicionado evento Change; (14/03/2012 10:50) 1.1.3 - Adicionado replace para váriavel f na função E, para procurar comandos 'this' e trocar por 'h' conseguindo reconhecer o elemento que chamou o evento; (14/03/2012 10:50) 1.1.4 - Alteração no modo da separação entre o evento chamado e o script deste evento, permitindo agora criar scripts mais complexos; (14/03/2012 14:20) Obs: Aqueles que quiserem podem participar do desenvolvimento e manutenção das versões do plugin. Podem ajudar finalizar o modo trigger. A parte comentada é um trecho retirado do plugin jQuery.tolls.overlay... ---------------------------------------------------------------------------- */ (function(a){ a.cfgs=a.cfgs||{version:"1.1.4"}, a.cfgs.psRel={ conf:{ el:"",length:0,cls:null,clsOver:null,clk:null,trg:null}};function E(f,g,h){ try{var s=f.replace(/this/gi, 'h'); eval(s)}catch(e){ var b=c=d="";b=h.attr("name");d=h.attr("id");b!=undefined?c=' Name: "'+b+'"':(d!=undefined?c=' Id: "'+d+'"':c="");console.log("Ev. "+g+" Error: \""+e.message+"\" on Elem.: \""+h.get(0).tagName+"\" Index:\""+h.index()+"\""+c+"")}}a.fn.psRel=function(o){ var defaults={ el:"",length:0,cls:null,clsOver:null,clk:null,trg:null};if(o){o=a.extend(a.cfgs.psRel.conf,o);} var retRel={ prc:function(el,prop){ s=a(el).attr("rel").split("!!");for(i in s){var pos=s[i].indexOf("=",0);var t=new Array();t[0]=s[i].substr(0,pos);t[1]=s[i].substr(pos+1,s[i].length);for(j in t){if(prop==t[0])return t[1];}}}, cls:function(el){ return this.prc(el,"Class")}, clsOver:function(el){ return this.prc(el,"ClassHover")}, click:function(el){ return this.prc(el,"Click")}, dblclick:function(el){ return this.prc(el,"DblClick")}, change:function(el) { return this.prc(el,"Change")}};c=a.cfgs.psRel.conf;p=retRel;return this.filter(":[rel]").each(function(){ if(p.clsOver(a(this))||p.cls(a(this))){ a(this).attr("class", p.clsOver(a(this))||p.cls(a(this)));}if(p.click(a(this))){ a(this).click(function(e){ e.preventDefault();E(p.click(a(this)),"Click",a(this));});}if(p.dblclick(a(this))){ a(this).dblclick(function(e){ e.preventDefault();E(p.dblclick(a(this)),"DblClick",a(this));});}if(p.change(a(this))) { a(this).change(function(e){ e.preventDefault();E(p.change(a(this)),"Change",a(this)); });}a(this).mouseover(function(){ if(p.clsOver(a(this)))a(this).attr("class", p.clsOver(a(this))+"_over")}).mouseout(function(){ if(p.clsOver(a(this)))a(this).attr("class", p.clsOver(a(this)).replace("_over",""))});})}})(jQuery);$(document).ready(function(){ $("[rel]").psRel();}); Modo Estudo: /* ---------------------------------------------------------------------------- -*-*- JS Code document -*-*- Plugin: psRel Versão: 1.1.4 Desenvolvedor: Pyetro Sabaraense Ferreira da Costa Descrição: este plugin é uma tentativa de facilitar ainda mais a escrita do código por inserir diretamente no html as opções desejadas de class com over, click, et... < 1.00 - Versões do desenvolvimento do código, sendo que a principal alteração foi de transformar o código que era uma simples chamada de uma "váriavel literal como objeto" para o plugin jQuery. Outra alteração foi a troca do separador ';;' por '!!' entre os eventos chamados no atributo "rel". 1.0.0 - Terminado o plugin funcionando perfeitamente, com os eventos Click, DoubleClick, Class e ClassHover. 1.0.1 - Adicionado o methodo dblclick; 1.1.1 - Adicionado a função E para agrupamento da função try; 1.1.2 - Adicionado evento Change; (14/03/2012 10:50) 1.1.3 - Adicionado replace para váriavel f na função E, para procurar comandos 'this' e trocar por 'h' conseguindo reconhecer o elemento que chamou o evento; (14/03/2012 10:50) 1.1.4 - Alteração no modo da separação entre o evento chamado e o script deste evento, permitindo agora criar scripts mais complexos; (14/03/2012 14:20) Obs: Aqueles que quiserem podem participar do desenvolvimento e manutenção das versões do plugin. Podem ajudar finalizar o modo trigger. A parte comentada é um trecho retirado do plugin jQuery.tolls.overlay... ---------------------------------------------------------------------------- */ (function(a) { // Iniciação da configuração a.cfgs=a.cfgs||{version:"1.1.4"}, a.cfgs.psRel={ conf:{ el:"",length:0,cls:null,clsOver:null,clk:null,trg:null} // Trecho comentado é um esboço de criação de função passado nos eventos. /*, addTrigger:function(a,b,d){ c[a]=[b,d]} }*/ }; /*var b=[],c={}; a.cfgs.psRel.addEffect("default",function(b,c){ var d=this.getConf(),e=a(window); d.fixed||(b.top+=e.scrollTop(),b.left+=e.scrollLeft()), b.position=d.fixed?"fixed":"absolute", this.getOverlay().css(b).fadeIn(d.speed,c)}, function(a){ this.getOverlay().fadeOut(this.getConf().closeSpeed,a) } );*/ // Função de validação do código passado por parametro nos eventos click, dblclick, etc. Caso código seja inválido, mostra-o no console. function E(f,g,h){ try{ var s=f.replace(/this/gi, 'h'); eval(s)}catch(e){ var b=c=d=""; b=h.attr("name"); d=h.attr("id"); b!=undefined?c=' Name: "'+b+'"':(d!=undefined?c=' Id: "'+d+'"':c=""); console.log("Ev. "+g+" Error: \""+e.message+"\" on Elem.: \""+h.get(0).tagName+"\" Index:\""+h.index()+"\""+c+"")} } // Iniciação do plugin e definição de váriaveis a.fn.psRel = function(o){ var defaults={ el:"",length:0,cls:null,clsOver:null,clk:null,trg:null}; if(o) {o=a.extend(a.cfgs.psRel.conf,o); } var retRel={ prc : function(el,prop) { var s = a(el).attr("rel").split("!!"); for(i in s) { var pos = s[i].indexOf("=",0); var t = new Array(); t[0] = s[i].substr(0,pos); t[1] = s[i].substr(pos+1,s[i].length); for(j in t) { if(prop==t[0]) return t[1]; } } }, cls : function(el) { return this.prc(el,"Class")}, clsOver : function(el) { return this.prc(el,"ClassHover")}, click : function(el) { return this.prc(el,"Click")}, dblclick : function(el) { return this.prc(el,"DblClick")}, change : function(el) { return this.prc(el,"Change")} }; // Abreviação de váriaveis c=a.cfgs.psRel.conf; p=retRel; // Retorno dos métodos da função chamada para cada elemento. return this.filter(":[rel]").each(function(){ if(p.clsOver(a(this))||p.cls(a(this))) { a(this).attr("class", p.clsOver(a(this))||p.cls(a(this))); } if(p.click(a(this))) { a(this).click(function(e){ e.preventDefault(); E(p.click(a(this)),"Click",a(this)); }); } if(p.dblclick(a(this))) { a(this).dblclick(function(e){ e.preventDefault(); E(p.dblclick(a(this)),"DblClick",a(this)); }); } if(p.change(a(this))) { a(this).change(function(e){ e.preventDefault(); E(p.change(a(this)),"Change",a(this)); }); } a(this).mouseover(function(){ if(p.clsOver(a(this))) a(this).attr("class", p.clsOver(a(this))+"_over") }).mouseout(function(){ if(p.clsOver(a(this))) a(this).attr("class", p.clsOver(a(this)).replace("_over","")) }); }); } })(jQuery); // Ativando plugin na página HTML $(document).ready(function(){ $("[rel]").psRel(); });
  4. Escrevi este conteúdo em meu blog: http://pysafe.blogspot.com/, mas vou remontar aqui. Espero que a galera com mais conhecimento possa sugerir melhorias e novidades. Agradecimentos ao Leo Balter, e outros que escreveram sobre plugins pra jQuery, que me ajudou muito desenvolver este... Bom, irei demonstrar o plug-in que eu estive criando para jQuery. Não é nada demais mas pode ajudar alguém que se interesse pelo funcionamento dele. Mais do que tudo o desenvolvimento deste plug-in foi para mim um baita aprendizado na construção de funções para jQuery. Bom chega de lero lero, vamos ao que interessa. Este plug-in apelidado de psRel, sendo Rel da propriedade rel dos elementos que uso como base deste plug-in. Eu tentei criar algo para diminuir a construção de código em javascript ecrevendo este código direto no elemento. Vou exemplificar pelo evento onClick e onDblclick. Abaixo através da tag script, escrevo: &lt;script> $("p").click(function(){ alert('Olá Mundo !!!') }).dblclick(function(){ alert('outro alerta') }); </script> Com o uso deste plugin para escrever o código anterior direto na propriedade rel do elemento, ficaria desta forma: <p rel="Click=alert('Olá Mundo!!!')!!DblClick=alert('outro alerta')"> Muitos com certeza se perguntam da praticidade do código, do ganho, se tiver, de produtividade, outros sobre a "desorganização" ou "organização", enfim, cada um tem sua opinião própria e seus próprios métodos de criar um código. Para aqueles que estão se interessando pelo assunto, aqui vai o exemplo do que eu considero um ganho de produtividade e praticidade. Código de página teste sem o plugin: <html> <head> <style type="text/css"> .A { text-decoration: underline; } .A_over { background: #CCCCCC; } .B, .B_over { color: #FF0000; } .B_over { background: #CCCCCC; color: #0000FF; } </style> &lt;script type="text/javascript" src="jquery-1.7.1.min.js"></script> </head> <body> <ul> <li name="1" class="A"> TESTE 1 </li> <li name="2" class="A"> TESTE 2 </li> <li name="3" class="B"> TESTE 3 </li> <li name="4" class="B"> TESTE 4 </li> <li name="5"> TESTE 5 </li> </ul> <p id="a" class="A"> P Teste 1 </p> <p id="b" class="B"> P Teste 2 </p> &lt;script> $("li[name=2],li[name=3],li[name=4],p").mouseover(function(){ $(this).attr("class",$(this).attr("class")+"_over") }).mouseout(function(){ $(this).attr("class",$(this).attr("class").replace("_over","")) }); $("li[name=2]").click(function(){ alert("Clk Li 2")}); $("li[name=3]").click(function(){ try{ eval("@#(;") }catch(e){console.log(e.message)} }); $("li[name=4]").dblclick(function(){ alert("DbClk Li 4")}); $("p#a").dblclick(function(){ try{ eval("ASJDI") }catch(e){console.log(e.message)}}); $("p#b").click(function(){ $('body').append('<p>Hello</p>'); }).dblclick(function(){ alert("DbClk P b")}); </script> </body> </html> E agora a mesma página usando o plugin: <html> <head> <style type="text/css"> .A { text-decoration: underline; } .A_over { background: #CCCCCC; } .B, .B_over { color: #FF0000; } .B_over { background: #CCCCCC; color: #0000FF; } </style> &lt;script type="text/javascript" src="jquery-1.7.1.min.js"></script> &lt;script type="text/javascript" src="jquery.psRel.min.js"></script> </head> <body> <ul> <li name="1" rel="Class=A"> TESTE 1 </li> <li name="2" rel="ClassHover=A!!Click=alert('Clk');"> TESTE 2 </li> <li name="3" rel="ClassHover=B!!Click=@#(;"> TESTE 3 </li> <li name="4" rel="ClassHover=B!!DblClick=alert('DbClk Li 4')"> TESTE 4 </li> <li name="5"> TESTE 5 </li> </ul> <p id="a" rel="ClassHover=A!!DblClick=ASJDI"> P Teste 1 </p> <p id="b" rel="ClassHover=B!!Click=$('body').append('<p>Hello</p>');!!DblClick=alert('DbClk P b')"> P Teste 2 </p> </body> </html> Como podem ver adicionei o evento mouseover..mouseout para mudança de classe apenas com a chamada ClassHover no atributo rel. Se fosse usar esse mesmo evento em jQuery puro para muitos elementos, deveria chamá-lo várias vezes para cada elemento ou colocar estes inúmeros elementos (IDs, tags, classes) no seletor do jQuery. Pretendo ainda aperfeiçoar este plug-in e adicionar mais eventos e outras facilidades. Quem quiser contribuir será de muito bom grado. Comentém e deixem sua opinião e suas dicas do que melhorar ou adicionar... Bom o plugin fica abaixo as versões estudo e min. Plugin psRel min: /* ---------------------------------------------------------------------------- -*-*- JS Code document -*-*- Plugin: psRel Versão: 1.1 Desenvolvedor: Pyetro Sabaraense Ferreira da Costa Descrição: este plugin é uma tentativa de facilitar ainda mais a escrita do código por inserir diretamente no html as opções desejadas de class com over, click, et... ---------------------------------------------------------------------------- */ (function(a){ a.cfgs=a.cfgs||{version:"1.1"}, a.cfgs.psRel={ conf:{ el:"",length:0,cls:null,clsOver:null,clk:null,trg:null}};function E(f,g,h){ try{eval(f)}catch(e){ var b=c=d="";b=h.attr("name");d=h.attr("id");b!=undefined?c=' Name: "'+b+'"':(d!=undefined?c=' Id: "'+d+'"':c="");console.log("Ev. "+g+" Error: \""+e.message+"\" on Elem.: \""+h.get(0).tagName+"\" Index:\""+h.index()+"\""+c+"")}}a.fn.psRel=function(o){ var defaults={ el:"",length:0,cls:null,clsOver:null,clk:null,trg:null};if(o){o=a.extend(a.cfgs.psRel.conf,o);}var retRel={ prc:function(el,prop){ s=a(el).attr("rel").split("!!");for(i in s){ t=s[i].split("=");for(j in t){ if(prop==t[0])return t[1];}}}, cls:function(el){ return this.prc(el,"Class")}, clsOver:function(el){ return this.prc(el,"ClassHover")}, click:function(el){ return this.prc(el,"Click")}, dblclick:function(el){ return this.prc(el,"DblClick")}};c=a.cfgs.psRel.conf;p=retRel;return this.filter(":[rel]").each(function(){ if(p.clsOver(a(this))||p.cls(a(this))){ a(this).attr("class", p.clsOver(a(this))||p.cls(a(this)));}if(p.click(a(this))){ a(this).click(function(e){ e.preventDefault();E(p.click(a(this)),"Click",a(this));});}if(p.dblclick(a(this))){ a(this).dblclick(function(e){ e.preventDefault();E(p.dblclick(a(this)),"DblClick",a(this));});}a(this).mouseover(function(){ if(p.clsOver(a(this)))a(this).attr("class", p.clsOver(a(this))+"_over")}).mouseout(function(){ if(p.clsOver(a(this)))a(this).attr("class", p.clsOver(a(this)).replace("_over",""))});})}})(jQuery);$(document).ready(function(){ $("[rel]").psRel();}); /* ------------------------------------------------------------------------ */ Plugin psRel modo estudo: /* ---------------------------------------------------------------------------- -*-*- JS Code document -*-*- Plugin: psRel Versão: 1.1 Desenvolvedor: Pyetro Sabaraense Ferreira da Costa Descrição: este plugin é uma tentativa de facilitar ainda mais a escrita do código por inserir diretamente no html as opções desejadas de class com over, click, et... < 1.00 - Versões do desenvolvimento do código, sendo que a principal alteração foi de transformar o código que era uma simples chamada de uma "váriavel literal como objeto" para o plugin jQuery. Outra alteração foi a troca do separador ';;' por '!!' entre os eventos chamados no atributo "rel". 1.0.0 - Terminado o plugin funcionando perfeitamente, com os eventos Click, DoubleClick, Class e ClassHover. 1.0.1 - Adicionado o methodo dblclick; 1.1.1 - Adicionado a função E para agrupamento da função try; Obs: Aqueles que quiserem podem participar do desenvolvimento e manutenção das versões do plugin. Podem ajudar finalizar o modo trigger. A parte comentada é um trecho retirado do plugin jQuery.tolls.overlay... ---------------------------------------------------------------------------- */ (function(a) { // Iniciação da configuração a.cfgs=a.cfgs||{version:"1.1"}, a.cfgs.psRel={ conf:{ el:"",length:0,cls:null,clsOver:null,clk:null,trg:null} // Trecho comentado é um esboço de criação de função passado nos eventos. /*, addTrigger:function(a,b,d){ c[a]=[b,d]} }*/ }; /*var b=[],c={}; a.cfgs.psRel.addEffect("default",function(b,c){ var d=this.getConf(),e=a(window); d.fixed||(b.top+=e.scrollTop(),b.left+=e.scrollLeft()), b.position=d.fixed?"fixed":"absolute", this.getOverlay().css(b).fadeIn(d.speed,c)}, function(a){ this.getOverlay().fadeOut(this.getConf().closeSpeed,a) } );*/ // Função de validação do código passado por parametro nos eventos click, dblclick, etc. Caso código seja inválido, mostra-o no console. function E(f,g,h){ try{eval(f)}catch(e){ var b=c=d=""; b=h.attr("name"); d=h.attr("id"); b!=undefined?c=' Name: "'+b+'"':(d!=undefined?c=' Id: "'+d+'"':c=""); console.log("Ev. "+g+" Error: \""+e.message+"\" on Elem.: \""+h.get(0).tagName+"\" Index:\""+h.index()+"\""+c+"")} } // Iniciação do plugin e definição de váriaveis a.fn.psRel = function(o){ var defaults={ el:"",length:0,cls:null,clsOver:null,clk:null,trg:null}; if(o) {o=a.extend(a.cfgs.psRel.conf,o); } var retRel={ prc : function(el,prop) { s = a(el).attr("rel").split("!!"); for(i in s) { t = s[i].split("="); for(j in t) { if(prop==t[0]) return t[1]; } } }, cls : function(el) { return this.prc(el,"Class")}, clsOver : function(el) { return this.prc(el,"ClassHover")}, click : function(el) { return this.prc(el,"Click")}, dblclick : function(el) { return this.prc(el,"DblClick")} }; // Abreviação de váriaveis c=a.cfgs.psRel.conf; p=retRel; // Retorno dos métodos da função chamada para cada elemento. return this.filter(":[rel]").each(function(){ if(p.clsOver(a(this))||p.cls(a(this))) { a(this).attr("class", p.clsOver(a(this))||p.cls(a(this))); } if(p.click(a(this))) { a(this).click(function(e){ e.preventDefault(); E(p.click(a(this)),"Click",a(this)); }); } if(p.dblclick(a(this))) { a(this).dblclick(function(e){ e.preventDefault(); E(p.dblclick(a(this)),"DblClick",a(this)); }); } a(this).mouseover(function(){ if(p.clsOver(a(this))) a(this).attr("class", p.clsOver(a(this))+"_over") }).mouseout(function(){ if(p.clsOver(a(this))) a(this).attr("class", p.clsOver(a(this)).replace("_over","")) }); }); } })(jQuery); // Ativando plugin na página HTML $(document).ready(function(){ $("[rel]").psRel(); });
  5. Olá galera. Preciso da ajuda de vocês para um caso especial "- No meu projeto, quero num determinado momento atribuir numa váriavel tipo String o valor binário de uma imagem para comparação... Eu estou tentando, convertendo a imagem para MemoryStream. Depois disso usei uma conversão de MemoryStream para String, e tudo certo até aí, converte perfeitamente, mas ainda não do jeito que quero, pois não está em formato binário... Segue o código: var Jpg: TJPEGImage; ms: TMemoryStream; msStr: String; begin ... ImageConvert.Picture.LoadFromFile(Foto); Jpg.Assign(ImageConvert.Picture.Graphic); ... ... compressão da imagem em jpg ... ... ms := TMemoryStream.Create; Jpg.SaveToStream(ms); // conversão de stream para string ms.Position := 0; SetLength(msStr, ms.Size); ms.ReadBuffer(Pointer(msStr)^, ms.Size); showMessage(msStr); A mensagem exibida seria algo parecido com: "ÿØÿàÇÿ˜Dú5¸€“êOó®ëÁjáþ˜[ø`$þµãÞ-»’ò9®î3æ\o™..."; Dessa forma consigo extrair o código da imagem em formato Stream e atribuir numa String, mas o que eu queria mesmo era transformar o Stream em Blob e depois em String e ter uma mensagem parecida com "0xF9098C9BA00000000CBA986AB543432CAB3253B45A76BA5B69AB9A7B0AB...'. Já tenteni vários métodos parecidos, como: Bf: TBlobField.Create(Self); Bf.LoadFromStream(ms); msStr := bf.AsString; E mais um monte de modos mas nada deu certo... se alguém tiver alguma idéia eu agadeceria...
  6. Velho valeu mesmo... Como estou local host, desenvolvendo.. Era só deixar o campo patch para todo site ("/"), e domínio false (false); !!! Só falta o problema das Expressões Regulares...
  7. Olá amigos, preciso da ajuda de vocês pra 2 problemas, como são do mesmo tema (php), resolvi postar os 2 num único tópico!!! Primeiro -> Cookies; Meu apache serv não seta cookies? Exemplo prático: <? setcookie('teste','teste',time()+90); if(isset($_COOKIE['teste'])) echo 'Setou Cookies'; else echo 'Não Setou Cookies'; ?> O apache não seta o cookie, ao executar a página uma vez o cookie deveria ser setado, na segunda mostrar o aviso 'Setou Cookies'; Porém não ocorre... Resolvi parcialmente setando em java script: <? //setcookie('teste','teste',time()+90); if(isset($_COOKIE['teste'])) echo 'Setou Cookies'; else echo 'Não Setou Cookies'; ?> &lt;script> var date = new Date(); var expires = "; expires="+date.getTime()=90; document.cookie = name+"="+value+expires+"; path=/"; //alert('Cookie Criado'); </script> Porém mesmo atualizando página sequencialmente a seguir o cookie não expira... Problemas >>> Não seta com php !!! >>> Setando com JS Não expira !!! HELPPPPPPPPPPPP !!! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Segundo -> Expressões Regulares; Bom, preciso retirar um trecho de texto (multinha); Fazendo alguns testes consegui -> <? $content_url_extense = ' linha 1 linha 1 linha 1 linha 2 linha 2 linha 2 <title> <><< <>< linha 4 linha 4 linha 5 linha 5 <><><>< </title>linha hhhhhhhhh linha 7 linha 7 linha 7 '; //if(preg_match('#(.*)<[tT][iI][tT][lL][eE]>(.*)</[tT][iI][tT][lL][eE]>(.*)?#',$content_url_extense,$matches)){ //ou if(preg_match_all('#^(.*)?<[tT][iI][tT][lL][eE]>(\n)|(.*)</[tT][iI][tT][lL][eE]>(.*)?#',$content_url_extense,$matches)){ print_r($matches); //echo $matches[2]; } ?> Os dois tiram alguma coisa mas não tudo!!! Quero tudo em todas linhas que estiver entre <title> e </title> !!! Preciso de tudo em uma só string... Estou estudando ERs a 3 dias, mas é um pouco complicado, tenho pressa por que é trabalho pra faculdade... Agradeço quem puder ajudar!
  8. Amigo, nesse código você cometeu um erro de duplicação incessante sem necessidade... me corrijam os outros amigos se eu estiver errado mas... if($acao=='verifica') //se vier com a ação verifica, executa o codigoabaixo { require_once "config.php"; require_once "conexao.php"; $cod=base64_encode($passen); $teste = "Select count(*) as soma from usuarios WHERE login='$txtlog' and senha='$cod'" or die(mysql_error()); $teste2 = mysql_query($teste); $comp = mysql_result($teste2,0,"soma"); //verifica se o usuário existe nesta tabela if($comp==0) //se não existir, verifica se existe nesta tabela { require_once "config.php"; require_once "conexao.php"; $cod=base64_encode($passen); Bom amigo, você repete várias vezes " require_once ..." Você só necessitar disso uma única vez no começo do script... Bom... um dos erros que vi...
  9. PyetroSafe

    WebService Php

    Bom amigo, primeiramente não entendi sua dúvida perfeitamente... Mas vou dizer algumas coisas que dá certo! Arquivo de funções: func.php Arquivo WS : webserv.php Por exemplo: func.php tem funções... <? function Calcula ($param) { return $param*25/10; } ?> webserv.php <? include_once('func.php'); function Chamafuncao($param) { $a = Calcula($param); echo $a; } Chamafuncao(52); ?> Retorna -> 130; Se os arquivos se chamarem ( include/require...) eles podem usar função um do outro, na verdade quem "chama" pode usar funções do arquivo chamado !!!
  10. Velho, explica melhor seu problema porque não entendi... Mas, na tentativa de te entender... Se você quer que o Javascript receba o valor da sessão PHP... Tem duas formas... Primeiro, atribua o valor da sessão em um input (do tipo hidden)... Aqui a váriavel do script tem o valor armazenado... &lt;script> var titulo = document.forms[0].titulo_livro.value; document.write(titulo); </script> <form name="frm"> <input type="hidden" name="titulo_livro" value="<? echo $_SESSION['titulo_livro']; ?>"> </form Segundo, escreve o código do script no php, e echoa na tela... Armazena e imprime o valor. echo " <script> var v = ".$_SESSION['titulo_livro']."; document.write(var); </script> ";
  11. Bom galera... Eu estou aqui mostrando script pra quem estava com problemas pra resolver o tal "Só funciona o script depois do alert...". Antes vou mostrar como era minha página e porque o problema, depois como resolvi. Eu estava com esse problema, e meu caso era exatamente esse... Eu tinha 3 divs como cabeçalho da página, conteúdo da página (div receberia o conteúdo) e fim da página... <div id=header> <div id=content> <div id=bottom> A div id=content iniciava com conteúdo vazio... O conteúdo era adicionado por uma função javascript, então o script é o seguinte: -A função js recebe um valor iniciado com a página: <body onload="Inicia('');"> ; -Quando vazio a função chama a página inicial ; Ao clicar em algum link (<input type=button onClick="Inicia('other_page');">) esse botao envia um valor pra função que verifica e chama a página correspondente. No caso uso "http.open..." etc etc... Esse comando lê a página requerida e envia pra dentro da minha div: "document.getElementById('content').innerHTML = http.responseText; " Beleza... até aí tudo bem, o problema estava no código para essa página requerida... Bom vamos lá, o que eu precisava? Que uma função js que iniciava logo depois de uma chamada da primeira, lesse o valor de um elemento dessa página requerida.! " function GetValue () { ... var v = document.getElementById('meu_elemento').value; ... } function Inicia (page) { ... code ... GetValue();} " Como o conteúdo dela era lido depois da página inicial estar pronta... scripts dela não eram executados... Para isso eu devia escrever os scripts na página inicial ( ou num arquivo js e carregar no header da página inicial)... Porém outro problema, nos meus scripts eu precisava resgatar o valor de um elemento que estava na página requerida, como ela tinha sido carregada depois, nisso ocorria o erro. Os elementos dessa pagina que foi trazida depois não eram vistos pelo script da página incial... Então acusava que o elemento não existia ou era null... Para isso eu tentei alguns recursos como "SetTimeOut();", "While(!getElementById('meu_elemento')){...}" porém não serviram pois davam erro de limite de tempo ou sobrecarga na memória... Porém quando eu clicava num botão da página requerida, que chamava a função que eu precisava, se tivesse um Alert dentro da função, o elemento era visto pela função... Nisso fui atrás e pesquisei sobre problemas com alert...E Nada. Então pensei que talvez o elemento só era visto depois do alert(); pois dava tempo de carregar todo o conteúdo pra página... Meio estranho mas era quase isso, ou que depois do alert o script lia todo conteúdo da página mais uma vez?... Mas tentei o seguinte, pensei num jeito sem DAR o ALERT, de "atualizar a leitura da página" ou de "dar tempo pro script achar o elemento"... Coloquei um evento "onmousemove" que a cada micro movimento do mouse ele chamava a função que eu queria e testava se o elemento estava carregado... Como eu precisava chamar a função uma uníca vez, matava o evento logo que a função era chamada E "O elemento era visto" pela função. Eis o código: HTML index.html _____ <head> &lt;script type="text/javascript" src="meu_script.js"> </script> </head <body onload="Inicia('');"> HTML depois.html _____ <!-- Essa página era lida pela função Inicia do javascript e copiava o conteúdo para a div "content" --> ... <input type="text" name="meu_elemento" id="meu_elemento"> ... JS meu_script.js _____ function Events () { /* ------------------------------------------------ */ // ADD EVENT LISTENER !!! /* ------------------------------------------------ */ if ((document.getElementById) && window.addEventListener || window.attachEvent){ (function(){ function mouse(e){ /* Verifica se o eleemento foi identificado */ if(!(document.getElementById('meu_elemento'))) { /* se não, nada faz... */ url = ''; } else { /* se sim executa o meu código... */ url = document.getElementById('meu_elemento').value; code ... /* remove o evento onmousemove */ if (window.addEventListener) { document.removeEventListener("mousemove",mouse,false); } else if (window.attachEvent) { document.detachEvent("onmousemove",mouse); } //alert('Acabou ! Remover Evento); /* se precisar pode por um código pra encerrar... */ ... codigo aqui... } } /* Aqui inicia o Evento Para IE e outros */ if (window.addEventListener) { document.addEventListener("mousemove",mouse,false); } else if (window.attachEvent) { document.attachEvent("onmousemove",mouse); } } ) (); } //End. } function Inicia(page) { if(page) { ... } ... codigos ... ... ... Events(); } Como funcionou isso... Após chamar a função Inicia(); no final dela chamei a função Events(); A função Events iniciava o evento mousemove que detectava cada movimento do mouse e retornava chamar a função events. Quando a função events era re-chamada, fazia a verificação se o elemento que eu precisava tinha sido reconhecido... Quando fosse reconhecido, eu recebia o valor do elemento que precisava, executava códigos necessários e eliminava a função mousemove... Bom, qualquer dúvida postem aí... Espero ter ajudado um pouco!
×
×
  • Criar Novo...