Jump to content
  • 0
joaodias117

Gerar uma lista ao selecionar um campo de outra lista.

Question

Gostaria de saber como realizar a seguinte ação:

Quero que, ao selecionar um campo de uma lista de categorias, outra lista seja gerada com as subcategorias. Segue exemplo do site Mercado Livre, durante o processo de anúncio de um produto:

inserir a descrição da imagem aqui

Como eu poderia criar o código javascript e html?

Esses são os códigos html que uso no documento view:

<div class="form-group">
        <label class="col-sm-3 control-label" for="input-category"><span data-toggle="tooltip" title="<?php echo $help_category; ?>"><?php echo "Categorias"; ?></span></label> <!-- $entry_category -->
       <div class="col-sm-9">

        <select name="product_category" id="product-category" size="10" class="form-control">
        <?php foreach($product_categories as $product_category){ ?>
            <?php if($product_category['parent_id'] == 300 && $product_category['level'] == 0){ ?>
                <option value="<?php echo $product_category['category_id']; ?>"><?php echo $product_category['name']; ?></option>
            <?php } ?>
        <?php } ?>
        </select>

        <select name="product_category" id="product-subcategory" size="10" class="form-control">
        <?php foreach($product_categories as $product_category){ ?>
            <?php if($product_category['parent_id'] == 59 && $product_category['level'] == 1){ ?>
                <option value="<?php echo $product_category['category_id']; ?>"><?php echo $product_category['name']; ?></option>
            <?php } ?>
        <?php } ?>
        </select>

        </div>
      </div>

Output:

inserir a descrição da imagem aqui

Obs 1: o código html é um teste para a categoria Acessórios (category_id = 59) gerando as subcategorias dessa categoria (subcategorias com parent_id = 59), mas gostaria de saber como gerar uma lista para cada categoria selecionada.

Obs 2: no output é gerada a tabela das subcategorias mesmo sem clicar no campo Acessórios, diferentemente do Mercado Livre.

Alguém poderia me ajudar com isto? Preciso resolver o quanto antes.

Agradeço desde já a atenção e a ajuda!

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

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 Lincoln Ferreira
      Eu estou tentando fazer um Jquery steps wizard mas não consigo colocar pra ele parar caso não tenha sido preenchido o formulario no segundo passo.
      http://www.jquery-steps.com/Examples
       
      if (newIndex === 2 && $("#Rua").val() == "") { return false; } $(document).ready(function() { $("#wizard").steps({ headerTag: "h2", bodyTag: "section", transitionEffect: "slideLeft", stepsOrientation: "vertical", labels: { current: "current step:", pagination: "Pagination", finish: "Finalizar", next: "Confirmar", previous: "Voltar", loading: "Carregando ..." }, onStepChanging: function(event, currentIndex, newIndex, cepError) { if (currentIndex > newIndex) { return true; } if (newIndex === 1) { return true; } if (newIndex === 2 && $("#Rua").val() == "") { return false; } } } ) }); <div id="wizard"> <h2>Verificação pedido</h2> <section> <h2><strong>Pedido:</strong></h2> <div class="lista-carrinho"></div> </section> <h2>Local de entrega</h2> <section> <div class="informações-usuario"> <form method="get" action="." id="#form-cep"> <div class="form-row"> <div class="form-group col-md-6"> <label for="cep">Cep:</label> <input name="cep" type="text" class="form-control" id="cep" placeholder="09572-660" value="" size="10" maxlength="9" required> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="rua">Rua:</label> <input name="rua" class="form-control" type="text" id="rua" placeholder="Sete de Dezembro" size="60" maxlength="" /> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="bairro">Bairro:</label> <input name="bairro" class="form-control" type="text" placeholder="Nova Gerty" id="bairro" size="40" maxlength="40" /> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="n">N°:</label> <input name="n" class="form-control" type="text" placeholder="2" id="n" size="6" maxlength="10" /> </div> </div> <div class="form-group col-md-6"> <label for="complemento">Complemento:</label> <input name="complemento" type="text" class="form-control" id="complemento" placeholder="Ao lado do extra" value="" size="10" maxlength="9" requerid> </div> <div class="form-row"> <div class="form-group col-md-11"> <label for="cidade">Cidade:</label> <input name="cidade" class="form-control" type="text" placeholder="São Bernardo do Carpo" id="cidade" size="40" maxlength="40" /> </div> </div> </div> </form> </div> </section> <h2>Forma de pagamento</h2> <section> <div class="row d-flex justify-content-center col-sm col-md col-lg m-5 "> <h2>Informe sua forma de pagamento :</h2> </div> <div class="row d-flex justify-content-center col-sm col-md col-lg m-5 "> <div class="col-2"> <li class="list-inline-item"> <div class="pure-radiobutton"> <input id="Dinheiro" name="dinheiro" type="radio" class="radio"> <label for="Dinheiro">Dinheiro</label> </div> </li> </div> <div class="row"> </div> <div class="col-2"> <li class="list-inline-item"> <div class="pure-radiobutton"> <input id="Cartao" name="cartao" type="radio" class="radio"> <label for="Cartao">Cartão</label> </div> </li> </div> </div> </section> </div>
    • By D2th3
      Pessoal,

      Sou intermediário em PHP e estou estudando OO. Vi exemplos de do MVC Pattern usando template view contudo de simples substituição do marcador pelos dados. Eu gostaria que você me pudessem indicar um material de estudo, exemplos de código de um Model, Controller e View que carregasse a template e exibisse, contudo dentro dessa template existisse condicionais e loops como marcadores a serem processados pelo PHP.
       
      Agradeço a ajuda aos meus estudos.
    • By marcelocardoso
      Fala galera...
      Depois de tanto sofrer tentando e pesquisando na internet, não consegui resolver...
      A nível de conhecimento, segue código para:::

      1) Ao clicar, pegar o id do botão, em seguida abrir com slidetoggle e jogar no TOP tipo ancora.
      2) ou seja, expandir a slidetoggle, mas POSICIONAR no id da DIV, SECTION ou etc...

      CODE:
       
      $(function () { // $("#btn-maps").on("click", function () { // $('html, body').animate({ // scrollTop: $("#maps").slideToggle('slow').offset().top - 135 // }, 1200, 'linear'); // }); $("#btn-maps").click( function (event) { event.preventDefault(); if ($("#maps").is(":visible")) { $("#maps").slideUp(600).offset().top; } else { $("#maps").slideDown(600).offset().bottom; } } ); }); Este código, funciona perfeitamente, adaptado de vários códigos buscados na internet, porém, não consigo com nenhum dos dois, posicionar ao CLICK o SLIDETOGGLE ao expandir deixar examente no inicio do ID;

      Dicas, Sugestões como fazer, realizar, agradeço.
      Obrigado.

       
    • By Guss
      var carro = {
      cor = "azul",
      modelo = "fusca",
      marca = "Volwagen,
      kms = 10000,
      combustivel = "gasolina"
      }
       
×

Important Information

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