Jump to content
FabianoSouza

Tratar variável JSON para exibir imagem

Recommended Posts

Fiz meu "gridview" na unha! Usando JSON e JS. Está funcionando redondo.

Agora quero implementar um recurso para "manipular" o valor retornado caso seja imagem (para mostrar ícones no grid).


Inicialmente pensei em:

1 - Usar Len para recuperar os últimos 4 caracteres da string

2 - Se for .jpg, .gif ou .png então crio uma tag IMG (dentro da TD da tabela) e defino o atributo SCR com o valor da string (algo como minha_imagem.jpg)

 

Ou seja, o JS teria que "testar" todos os campo a cada iteração do loop.

Em anexo está um print para ajudar a compreender o contexto.

 

Quero saber dos colegas qual a melhorar maneira para fazer isso.

 

 

Grato.

grid.PNG

Share this post


Link to post
Share on other sites

Queria saber se há outras opções mais "adequadas".
Mas se falou que é válida, então vou começar com essa opção.

 

Valew!!

 

Obs: cadê o botão de encerrar o tópico??

Share this post


Link to post
Share on other sites

se bem entendi tu queres checar se um objeto é imagem é isso mesmo? se for tens a opção de usar file.type do tipo

if (input[0].files[0].type.match('image.*')){
    // faz o que quer
}

 

e pra ajudar a validar se é imagem mesmo porque pode ser que um mal intencionado renomeia um arquivo php como jpg por exemplo acredito que pode testar altura e largura do arquivo também tipo

if (input[0].files[0].type.match('image.*') && (input[0].files[0].offsetWidth + input[0].files[0].offsetHeight > 0)){
    // faz o que quer
}

talvez consiga adaptar

  • +1 1

Share this post


Link to post
Share on other sites
Em 01/05/2017 at 15:48, marsolim disse:

se bem entendi tu queres checar se um objeto é imagem é isso mesmo? se for tens a opção de usar file.type do tipo


if (input[0].files[0].type.match('image.*')){
    // faz o que quer
}

 

e pra ajudar a validar se é imagem mesmo porque pode ser que um mal intencionado renomeia um arquivo php como jpg por exemplo acredito que pode testar altura e largura do arquivo também tipo


if (input[0].files[0].type.match('image.*') && (input[0].files[0].offsetWidth + input[0].files[0].offsetHeight > 0)){
    // faz o que quer
}

talvez consiga adaptar

 

Na verdade minha necessidade é diferente disso. Mas seu código vai ser bem útil para outra finalidade. ;-)

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By asacap1000
      Galera me ajudem por favor, estou pirando kkkkk
       
      Seguinte, tenho um form que realiza o submit via javascrit enviando os dados para uma página php formatada em json.
      Está gravando perfeitamente porém preciso dos dados do retorno, como Link do boleto, e alguns outros resultados para inserir no banco nesse ponto já pesquisei um monte testei de tudo até a página bugar e nada kkkk
       
      o Script que utilizo para o envio é esse:
       
      <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $("#frmBoleto").submit(function(){ $.ajax({ type: "POST", url: "https://www.sitedaloja.com.br/action/boleto_bradesco/gerando_boleto.php", data: $(this).serializeArray(), }).done(function( msg ) { }); return false; }); </script> Como fazer para capturar os dados  da resposta do json?  
    • By s3c0
      Fala pessoal,
       
      estou com um probleminha com uma integração, onde preciso ler um resposta JSON em ASP Clássico.
       
      a resposta é
       
      {"id":1,"name":"PAC","price":"45.65","custom_price":"45.65","discount":"7.41","currency":"R$","delivery_time":8,"delivery_range":{"min":8,"max":8},"custom_delivery_time":8,"custom_delivery_range":{"min":8,"max":8},"packages":{"price":"45.65","discount":"7.41","format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":1,"name":"Correios","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/correios.png"}},{"id":2,"name":"EXPRESSO","price":"68.51","custom_price":"68.51","discount":"11.95","currency":"R$","delivery_time":5,"delivery_range":{"min":5,"max":5},"custom_delivery_time":5,"custom_delivery_range":{"min":5,"max":5},"packages":{"price":"68.51","discount":"11.95","format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":1,"name":"Correios","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/correios.png"}},{"id":3,"name":".Package","price":"33.51","custom_price":"33.51","discount":"15.58","currency":"R$","delivery_time":6,"delivery_range":{"min":5,"max":6},"custom_delivery_time":6,"custom_delivery_range":{"min":5,"max":6},"packages":{"format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":2,"name":"JadLog","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/jadlog.png"}},{"id":4,"name":".Com","price":"32.63","custom_price":"32.63","discount":"26.48","currency":"R$","delivery_time":5,"delivery_range":{"min":4,"max":5},"custom_delivery_time":5,"custom_delivery_range":{"min":4,"max":5},"packages":{"format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":2,"name":"JadLog","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/jadlog.png"}}  
      Tenho a seguinte página para receber essa resposta
       
      <!--#include file="includes/json2.asp"--> <% Dim objXML, Result Set objXML = Server.CreateObject("Microsoft.XMLHTTP") On Error Resume Next For i = 1 To 3 objXML.Open "POST" , url, False , "", "" objXML.setRequestHeader "content-type", "application/json" objXML.setRequestHeader "accept", "application/json" objXML.setRequestHeader "authorization", "Bearer " & Bearer objXML.Send variavel_json If Err.Number = 0 Then Result = objXML.ResponseText end if Exit For Next Set objXML = Nothing Result = replace(replace(Result,"[",""),"]","") a=Split(Result,".png""}},") For Each x In a set x = JSON.parse(Result) Response.write(x.name & vbNewline) Response.write(x.price & vbNewline) Response.write(x.delivery_time & vbNewline) Response.write(x.company.name & vbNewline) Next %> O que ocorre, é que imprimi somente a última linha
       
      Print
      .Com 32.63 5 JadLog .Com 32.63 5 JadLog .Com 32.63 5 JadLog .Com 32.63 5 JadLog  
       
      Alguém poderia me dizer onde estou errando?
       
      Agradeço a atenção de todos!
       
      Abraços
    • By sronze
      Ola estou com um problema em JavaScript
      O objetivo e digitar um ID/Nome em um input e ele buscar em um arquivo XML fazendo autocomplete e preencher outros dois inputs com os atributos associado ao ID/Nome da base XML.
       
      GIF de exemplo, obs(exatamente oque pretendo fazer): http://blog-media.chromaticsites.com.s3.amazonaws.com/google-places-autocomplete-3/autocomplete-error.gif
       
      Link do XML: https://www.w3schools.com/js/cd_catalog.xm
       
      Segue meu código:
      <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> </head> Nome:<input id="idInput"> UF:<input id="idInput02"> Ano:<input id="idInput03"> <script> var ValorXML1 = []; $(document).on('keyup' , '#idInput' ,function(){ var keyvalue = $("#idInput").val(); var xhttp; xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { ValorXML1 = []; CaregarXML(this , keyvalue); } }; xhttp.open("GET", "https://www.w3schools.com/js/cd_catalog.xml", true); xhttp.send(); }); function CaregarXML(xml , key) { var x, i, xmlDoc , key; xmlDoc = xml.responseXML; x = xmlDoc.getElementsByTagName("TITLE"); var cont = 0; for (i = 0; i < x.length; i++) { var valor = x[i].childNodes[0].nodeValue.trim(); var pattern = valor.substring(0 , key.length); if(key.toUpperCase() == pattern.toUpperCase() && cont < 5){ ValorXML1.push(valor); cont++; } } $("#idInput").autocomplete({ source: ValorXML1 }); } $( function() { $( "#idInput" ).autocomplete({ source:ValorXML1 }); }); </script>  
    • By ricardonews
      Olá pessoal, fiz um formulario de cadastro usando o jquery ,ajax com o json. só que agora eu estou querendo logar  no banco, fiz todo o procedimento normal que se faz para site em php, mas não consegui nada,  eu tenho algumas imagem aqui  vou colocar.
      Queria logar, eu coloquei a index  sem o php porque tentei com php e js mas nao funcionou , alguem pode me ajudar ?
      desde já obrigado.




    • By valdirdillNew
      Bom dia,
       
      Estou tendo dificuldades de ler campos de um texto Json.
       
      O Json puro é este:
      $jsonStr = '
      {"ObjectType":"toDataset", "Direction":"odINOUT", "Encoded":"false", "ValueType":"ovDataSet", "":[{"fields":[{"Field":"CODIGO", "Type":"ftInteger", "Primary":"S", "Required":"S", "Size":0, "Precision":0, "ReadOnly":"N", "Autogeneration":"N"}, {"Field":"NOME", "Type":"ftString", "Primary":"N", "Required":"S", "Size":40, "Precision":0, "ReadOnly":"N", "Autogeneration":"N"}, {"Field":"EMAIL", "Type":"ftString", "Primary":"N", "Required":"S", "Size":60, "Precision":0, "ReadOnly":"N", "Autogeneration":"N"}]}, {"lines":[{"line0":["779", "Juca Santos", "jcas@site.com.br"]}, {"line1":["869", "Paulo da Silva", "paulo@site.com.br"]}]}]}';
       
      Fiz a conversão para array com:
      $jsonArray = json_decode($jsonStr, true);
       
      A minha dificuldade é como pegar o valor dos campos código, nome e e-mail do subArray lines.
      Já tentei de diversas formas, como, por exemplo:
      $nome = $jsonArray['lines'][0][0];
      Tentei também outras opções também, mas não tive êxito.
       
      Alguma sugestão?
       
      Obrigado.
       
       

       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.