Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

124
Vistas
Cambie las opciones de selección con otra selección usando datos JSON - JQuery

Tengo datos json que se ven así:

 [{ "id": 9, "category": "Baby", "items": "[{\"value\":\"Baby Foods\"}]", "created_at": "2022-01-08T14:28:48.000000Z", "updated_at": "2022-01-08T14:28:48.000000Z", "deleted_at": null }, { "id": 10, "category": "Adult", "items": "[{\"value\":\"Adult Clothes\"},{\"value\":\"Adult Bags\"},{\"value\":\"Adult Shoes\"}]", "created_at": "2022-01-09T10:46:34.000000Z", "updated_at": "2022-01-09T10:46:34.000000Z", "deleted_at": null }]

Tiene una lista de categorías con sus artículos. Ahora, lo que estoy tratando de hacer ahora es completar esos datos en los cuadros de selección de manera que si una categoría de cambio de usuario consultada desde JSON mostrará elementos (como se muestra en JSON) en otro cuadro de selección como opciones que pertenecen a esa categoría seleccionada.

Esto es lo que he intentado hasta ahora usando jquery:

 let dropdown = $('#category'); dropdown.empty(); dropdown.append('<option selected="true" disabled>Choose</option>'); dropdown.prop('selectedIndex', 0); const url = 'http://localhost:8000/admin/categories/show'; // Populate dropdown with list of categories $.getJSON(url, function (data) { $.each(data, function (key, entry) { dropdown.append($('<option></option>').attr('value', entry.category).text(entry.category)); }) });

Aquí está el resultado que muestra perfectamente las categorías en el cuadro de selección de categoría:

ingrese la descripción de la imagen aquí

No tengo idea de cómo obtener elementos si se selecciona cierta categoría en otro cuadro de selección (el segundo), cualquier ayuda será muy apreciada.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede definir un eventHandler para su evento de change de categoría, y cada vez que cambie, puede leer elementos relacionados de los datos de origen y colocar elementos en la opción de destino, así:

 let data = [{ "category": "Baby", "items": "[{\"value\":\"Baby Foods\"}]", }, { "category": "Adult", "items": "[{\"value\":\"Adult Clothes\"},{\"value\":\"Adult Bags\"},{\"value\":\"Adult Shoes\"}]", } ] let categories = $('#category'); let items = $('#items') function fillDropdown(target, {data, prop}) { $.each(data, function(key, data) { target.append($('<option></option>').attr('value', data[prop]).text(data[prop])); }) } fillDropdown(categories, {data, prop: 'category'}) categories.on('change', function(e) { items.html(''); let value = $(this).val(); if (value) { let dataItem = data.find(v => v.category == value); const options = JSON.parse(dataItem.items); fillDropdown(items, {data: options, prop: 'value'}) } })
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="category"> <option></option> </select> <select id="items"></select>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda