Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
reaprod

preciso criar 3 selects com ligação entre eles

Pergunta

Pessoal, será que alguém pode me dar uma força ai?

To precisando fazer 3 campos de seleção no cadastro, mas cada campo tem que buscar o dados de outro...

exemplo: 

---

- primeiro campo

moto

carro

outros

---

-segundo campo

as marcas de cada um do primeiro

---

--terceiro campo

os nomes dos veiculos de cada marca

 

.... não precisa ser dinamico com banco de dados, pode ser através de variaveis em javascript

Compartilhar este post


Link para o post
Compartilhar em outros sites

13 respostas a esta questão

Recommended Posts

10 minutos atrás, Rapadura disse:

Saudações

 

reaprod

 

Se esta com muitas dúvidas pesquise por (PHP,  linguagem usadas em servidores),  (mysql para banco de dados) e

(forms para formularios)

caso queira uma janela bem bonita pesquise por janela modal 

Espero ter ajudado.

:thumbsup:

Eu não manjo muito de javascript... preciso de um formulario com selects... mas ao selecionar o primeiro ele carrega os dados correspondente a ele no segundo e ao selecionar o segundo ele tambem carregue os dados referente a ele... achei um na internet... mas ele só funciona já com o banco de dodos... preciso de algo pra cadastrar ainda no banco...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, como você disse que não tem muito conhecimento nas linguagem web, montei apenas um exemplo bem básico de como fazer oque precisa, existe outras forma de fazer oque precisa, mas esse é só um exemplo bem cru. 

https://jsfiddle.net/wessleysanttos/pkyufhp5/

 

Não se esqueça de chamar o jQuery no seu código fonte.

https://code.jquery.com/

 

E como o amigo acima citou, procure estudar mais sobre as linguagens, aproveita esse exemplo meio cru e pesquise sobre os comando que não entendeu ou pode perguntar aqui mesmo. 

Compartilhar este post


Link para o post
Compartilhar em outros sites
23 horas atrás, wessleysanttos disse:

Amigo, como você disse que não tem muito conhecimento nas linguagem web, montei apenas um exemplo bem básico de como fazer oque precisa, existe outras forma de fazer oque precisa, mas esse é só um exemplo bem cru. 

https://jsfiddle.net/wessleysanttos/pkyufhp5/

 

Não se esqueça de chamar o jQuery no seu código fonte.

https://code.jquery.com/

 

E como o amigo acima citou, procure estudar mais sobre as linguagens, aproveita esse exemplo meio cru e pesquise sobre os comando que não entendeu ou pode perguntar aqui mesmo. 

Nossa que show... mas ai que vem o proplema precisava que tivesse mais um campo... nesse seu exemplo você colocou tipo-veiculo e marca-veiculo... eu preciso que tenha mais um campo interligado a esses ai.. tipo nome do veiculo... entendeu... e vou sim seguir seu concelho sobre estudar... seu o basico mesmo de php e mysql... de java muiiito pouco mesmo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, mas a logica do que foi feito você conseguiu pegar? Mesmo não conhecendo a linguagem?

Olha como ficou dessa forma:

https://jsfiddle.net/wessleysanttos/142vLhpr/

 

Ali no /* Faz a condição do segundo select */ você trata as condições e faz oque quiser com o dado que o usuário escolheu, se quiser colocar em um input, em uma tag, etc.. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

é assim.. tudo com select interligados

no primeiro campo

 

tipo-veiculo >  Moto, Carro

 

no segundo campo

 

marca-veiculo > Fiat, Chevrolett

 

no terceiro campo

 

nome veiculo > Gol, Palio, Santana

 

mas ligados... quando escolher carro... abre o segundo... quando escolher fiat abre os nomes que esta na aba fiat

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, olha para oque você precisa a base do código é essa:

https://jsfiddle.net/wessleysanttos/vmbzuh01/

 

Agora você precisa cadastrar todas as possibilidades, por exemplo no primeiro select que esta no HTML, cadastre todos os tipos de veículos, ai no JAVASCRIPT no trecho $("#tipo-veiculo").change(function(){... nos IF você trata todas as condições e possibilidades que vai aparecer no próximo select, ai no trecho $("#marca-veiculos").change(function(){... mesma coisa, coloca todas as possibilidades, existe algumas forma de tornar esse código mais limpo, por exemplo com um array de marca e nome dos veículos, mas como tu disse que é iniciante tratar esses conceitos só iria te deixar confuso, então creio que a base do que precisa é isso ai, qualquer dúvida só postar e bons estudos. 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, wessleysanttos disse:

Certo, olha para oque você precisa a base do código é essa:

https://jsfiddle.net/wessleysanttos/vmbzuh01/

 

Agora você precisa cadastrar todas as possibilidades, por exemplo no primeiro select que esta no HTML, cadastre todos os tipos de veículos, ai no JAVASCRIPT no trecho $("#tipo-veiculo").change(function(){... nos IF você trata todas as condições e possibilidades que vai aparecer no próximo select, ai no trecho $("#marca-veiculos").change(function(){... mesma coisa, coloca todas as possibilidades, existe algumas forma de tornar esse código mais limpo, por exemplo com um array de marca e nome dos veículos, mas como tu disse que é iniciante tratar esses conceitos só iria te deixar confuso, então creio que a base do que precisa é isso ai, qualquer dúvida só postar e bons estudos. 

 

2 horas atrás, wessleysanttos disse:

Certo, olha para oque você precisa a base do código é essa:

https://jsfiddle.net/wessleysanttos/vmbzuh01/

 

Agora você precisa cadastrar todas as possibilidades, por exemplo no primeiro select que esta no HTML, cadastre todos os tipos de veículos, ai no JAVASCRIPT no trecho $("#tipo-veiculo").change(function(){... nos IF você trata todas as condições e possibilidades que vai aparecer no próximo select, ai no trecho $("#marca-veiculos").change(function(){... mesma coisa, coloca todas as possibilidades, existe algumas forma de tornar esse código mais limpo, por exemplo com um array de marca e nome dos veículos, mas como tu disse que é iniciante tratar esses conceitos só iria te deixar confuso, então creio que a base do que precisa é isso ai, qualquer dúvida só postar e bons estudos. 

wessleysanttos

Deu tudo certo e esta cadastrando perfeito no banco de dados... 

Gostaria de saber uma coisa... se eu usar o mesmo sistema pra fazer uma busca avançada, como pegaria o valor de cada campo?... se quiser te mando o codigo que fiz... mas não busca nada..

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

No PHP, só colocar o conteúdo do HTML dentro do form com o action, method.. 

Ai no PHP você chama pelo name que definiu no HTML.

http://php.net/manual/pt_BR/language.variables.external.php

 

HTML:

<form action="sua_pagina.php" method="post">
 <label>Selecione o tipo de veiculo</label>
 <select id="tipo-veiculo" name="tipo-veiculo">
  <option>Selecione</option>
  <option>Moto</option>
  <option>Carro</option>
</select>
<br><br>
<select id="marca-veiculos" name="marca-veiculo">
</select>
<br><br>
<select id="nome-veiculos" name="nome-veiculo">
</select>
</form>

no PHP:

<?php
$tipo_veiculo = $_POST['tipo-veiculo'];
...

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por belann
      Olá!
       
      Estou fazendo o upload de arquivos com fetch dessa forma
      fetch(url, {
              method: 'POST',
              headers: {'Content-Type': 'multipart/form-data',},
              body: formData 
          }).catch((error) => (console.log("Problemas com o Upload"), error));
       
      estou usando input type=file
      e criando uma const formData = new FormData(); 
      mas não faz e não dá nenhum erro.
      estou fazendo o upload com a url="http://localhost/dashboard/dados".
    • Por joeythai
      Boa tarde pessoal,
       
      Eu criei um formulário em que tenho 3 interações: evento click, change e uma chamada ajax. No evento on change ("select#removal_table_from" )eu faço uma chamada ajax onde eu passo como parametro o id do item selecionado e construo uma tabela dinamica com o próprio javascript, após isto, tenho um input em que o usuario coloca um valor de percentual para que eu possa preencher em 3 colunas da tabela que foi criada dinamicamente: moto_atualizado, carro_atualizado e caminhao_atualizado, até aí tudo bem, o codigo está fazendo isso, porém, como a tabela é criada dinamicamente eu preciso de alguma forma enviar o arrayData para meu backend mas quando faço o calculo dentro do loop apos resposta do meu ajax, os valores desses 3 campos chegam como null, não sei se é possível fazer o que pretendo ou se é ainda não sei como faz
       
      <code>
           $(document).ready(function (event) {   let arrayData = []; let percentage; let removal_vehicle; let removal_motorcycle; let removal_tuck; let apply_removal = $('#apply_removal');   // apply_removal.on('click', function () { // percentage = $('#percentage').val();   // $('.table-body tr').each(function () {   // let veiculo = $(this).find('.veiculo').text(); // let moto = $(this).find('.moto').text(); // let caminhao = $(this).find('.caminhao').text();   // let removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; // let removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; // let removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   // arrayData.push({ // removal_vehicle, // removal_motorcycle, // removal_tuck // })   // $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); // $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); // $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2)); // }); // });   apply_removal.on('click', function () { percentage = $('#percentage').val();   $('.table-body tr').each(function () {   let veiculo = $(this).find('.veiculo').text(); let moto = $(this).find('.moto').text(); let caminhao = $(this).find('.caminhao').text();   removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   arrayData.push({ removal_vehicle, removal_motorcycle, removal_tuck })   $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2));     console.log('Removal Vehicle:', removal_vehicle); console.log('Removal Motorcycle:', removal_motorcycle); console.log('Removal Truck:', removal_tuck); }); });   $('select#removal_table_from').on('change', function (e) { let table_id = $(this).val(); let action = route('removal.removal-values.show', table_id);   $.ajax({ type: "GET", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },   success: function (data) { $('.table-body').empty();   for (let i = 0; i < data.length; i++) { let carro = parseFloat(data[i].CARRO); let moto = parseFloat(data[i].MOTO); let caminhao = parseFloat(data[i].CAMINHAO); let distancia = data[i].DISTANCIA; let origem = data[i].ORIGEM; let destino = data[i].DESTINO; let localidadeOrigem = data[i].LocalidadeOrigem_ID; let localidadeDestino = data[i].LocalidadeDestino_ID;   let newRow = '<tr class="removal-row">' + '<td class="align-middle">' + '<div class="row">' + '<div class="col-1">' + '<span class="font-weight-bold">Origem</span><br>' + '<span class="origem">' + origem + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Destino</span><br>' + '<span class="destino">' + destino + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">KM</span><br>' + '<span class="km">' + distancia + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Veículo</span><br>' + '<span class="veiculo">' + carro + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Veículo Atualizado</span><br>' + '<input type="text" class="veiculo_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Moto</span><br>' + '<span class="moto">' + moto + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Moto Atualizado</span><br>' + '<input type="text" class="moto_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Caminhão</span><br>' + '<span class="caminhao">' + caminhao + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Caminhão Atualizado</span><br>' + '<input type="text" class="caminhao_atualizado">' + '</div>' + '</div>' + '</div>' + '</td>' + '</tr>';   $('.table-body').append(newRow); //let row = $('.removal-row:last');   // Calcula o valor atualizado e define nos campos diretamente // let veiculo_atualizado = carro + (carro * percentage) / 100; // let moto_atualizado = moto + (moto * percentage) / 100; // let caminhao_atualizado = caminhao + (caminhao * percentage) / 100; // console.log('PORCENTS: ', percentage); //console.log('Veiculo Atualizado:', veiculo_atualizado, 'Moto Atualizado:', moto_atualizado, 'Caminhao Atualizado:', caminhao_atualizado);   // Define os valores diretamente nos campos da nova linha // row.find('.veiculo_atualizado').val(veiculo_atualizado.toFixed(2)); // row.find('.moto_atualizado').val(moto_atualizado.toFixed(2)); // row.find('.caminhao_atualizado').val(caminhao_atualizado.toFixed(2));   arrayData.push({ carro, moto, caminhao, distancia, origem, destino, localidadeOrigem, localidadeDestino, removal_vehicle, removal_motorcycle, removal_tuck }); }   $('#copy_data_table').val(JSON.stringify(arrayData)); }   }); });   //javascript para o formulario de cadastro // $(document).ready(function (event) { $('#uf').change(function () { let code_city = $(this).val(); let deposit = localStorage.getItem('selected_deposit_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city').empty(); $('#deposit').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '<option>'); }   if (data.deposits.length > 0) { for (let i = 0; i < data.deposits.length; i++) { $('#deposit').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '<option>'); } } else { // $('#deposit').prop('disabled', true); // $('#city').prop('disabled', false); }   $('#city').trigger('change'); } });   });   $('#deposit').on('change', function () { depositId = $(this).val(); localStorage.setItem('selected_deposit_id', depositId); });   $('#uf_destiny').change(function () { let code_city = $(this).val(); let depositDestiny = localStorage.getItem('selected_deposit_destiny_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city_destiny').empty(); $('#deposit_destiny').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city_destiny').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '</option>'); }   if (data.deposits.length > 0) { // $('#deposit_destiny').prop('disabled', false); //$('#city_destiny').empty(); // $('#city_destiny').prop('disabled', true); for (let i = 0; i < data.deposits.length; i++) { $('#deposit_destiny').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '</option>'); } } else { // $('#deposit_destiny').prop('disabled', true); // $('#city_destiny').prop('disabled', false); }   $('#city_destiny').trigger('change'); } }); });   $('#deposit_destiny').on('change', function () { let depositDestinyId = $(this).val(); localStorage.setItem('selected_deposit_destiny_id', depositDestinyId); });   }); </code>
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.