tiagocaus 1 Denunciar post Postado Agosto 9, 2013 Boa tarde. Preciso montar um formulário de consulta como este http://carros.uol.com.br/tabela-fipe/ Pesquisando na internet achei esse material http://fipeapi.appspot.com/ Como não tenho noção de JSON, alguém poderia me ajudar a montar esse formulário? Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 10, 2013 Não tem segredo, basta usar a função json_decode do PHP e você terá os dados como um objeto ou array, depois é só usar como bem entender. Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Agosto 10, 2013 <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://fipeapi.appspot.com/api/1/carros/marcas.json"); curl_exec($ch); $result = curl_exec($ch); echo $result; ?> [ {"name": "AUDI", "fipe_name": "Audi", "order": 2, "key": "audi-6", "id": 6}, {"name": "BMW", "fipe_name": "BMW", "order": 2, "key": "bmw-7", "id": 7}, . . . ] Como pegar esses valores para poder montar o select? Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 10, 2013 Faça assim: <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://fipeapi.appspot.com/api/1/carros/marcas.json'); curl_exec($ch); $result = curl_exec($ch); $json = json_decode($result, true); var_dump($json); Pra ser sincero eu acho complicado fazer uma consulta em uma URL externa cada vez que for exibir o formulário e os sub selects. Pode ficar lento, o servidor da API estar indisponível e até mesmo eles bloquearem o acesso do seu servidor a API por consumir muitos recursos. O mais correto neste caso seria armazenar estes dados como marcas e modelos dos veículos no banco de dados ou em arquivos de cache, e só usar a API em runtime pra consultar o valor de cada veículo. Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Agosto 10, 2013 Verdade, pois o que muda são os valores, mas a cada ano novos modelos são criados... Não sei o que fazer...rsrs Como eu pego esse valor nome e id e coloco dentro de uma variável para usar no select? Array( [0] => Array ( [name] => AUDI [fipe_name] => Audi [order] => 2 [key] => audi-6 [id] => 6 ) [1] => Array ( [name] => BMW [fipe_name] => BMW [order] => 2 [key] => bmw-7 [id] => 7 )} Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 10, 2013 Com um foreach. Exemplo: <select name="marca"> <?php foreach($marcas as $marca): ?> <option value="<?php echo $marca['id']; ?>"><?php echo $marca['name']; ?></option> <?php endforeach; ?> </select> Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Agosto 10, 2013 Ta dando certo... vamos ver se chego até o final...rsrs... Como poderia fazer para carregar o próximo select a partir do select marca? ? Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 10, 2013 Para carregar os próximos selects dinamicamente de acordo com o que foi selecionado no select anterior, você pode usar a biblioteca jQuery. Use o change para detectar se o select foi alterado, ou seja, se o usuário selecionou alguma opção, e em seguida você pode carregar os dados do próximo select usando o getJSON ou outro método qualquer para carregar dados via Ajax. Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Agosto 10, 2013 Quanto você cobra para fazer isso? Não consegui...rsrs Compartilhar este post Link para o post Compartilhar em outros sites