Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

169
Visualizações
AJAX JSON HTML JS ¿Cómo generar una tabla de datos?

HTML:

 <table> <tr> <th>Student Name</th> <th>Student Grades</th> </tr> <tr> <td> <select name="dropdown" id="dropdown"> <option> - </option> <option id = "StudentA"> Student A </option> <option id = "StudentB"> Student B </option> </select> </td> <td></td> <td></td> </tr> <tr> <td> <select name="dropdown" id="dropdown"> <option> - </option> <option id = "StudentA"> Student A </option> <option id = "StudentB"> Student B </option> </select> </td> <td></td> <td></td> </tr> </table>

JSON:

 {"students": [ {"studentName" : "studentA", "studentGrades" : "gradeC"}, {"studentName" : "studentB", "studentGrades" : "gradeA+"}, ] }

¿Cómo hacer que cuando seleccione una opción desplegable del estudiante A, las calificaciones de los estudiantes se muestren automáticamente en la tabla?

Solo analicé el texto de respuesta e hice un registro de la consola y lo hice. Tengo a todos los estudiantes en el registro de la consola, pero no estoy exactamente seguro de cómo hacerlo con el menú desplegable de opciones de selección.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Puede probar el siguiente enfoque para lograr esto. Agregue un evento onchange en la etiqueta de selección y, según la opción seleccionada, actualice la columna de calificaciones.

Código de trabajo completo:

 const data = { "students": [{ "studentName": "studentA", "studentGrades": "gradeC" }, { "studentName": "studentB", "studentGrades": "gradeA+" }, ] } function showGrades() { const dropdowns = document.querySelectorAll('#dropdown') dropdowns.forEach(dropdown => { const selectedVal = dropdown.options[dropdown.selectedIndex].id const formattedVal = selectedVal.charAt(0).toLowerCase() + selectedVal.slice(1) const grades = data.students.map(item => { if (item.studentName == formattedVal) { dropdown.parentElement.parentElement.children[1].innerText = item.studentGrades; } }) }) }
 <table> <tr> <th>Student Name</th> <th>Student Grades</th> </tr> <tr> <td> <select name="dropdown" id="dropdown" onchange="showGrades()"> <option> - </option> <option id="StudentA"> Student A </option> <option id="StudentB"> Student B </option> </select> </td> <td></td> </tr> <tr> <td> <select name="dropdown" id="dropdown" onchange="showGrades()"> <option> - </option> <option id="StudentA"> Student A </option> <option id="StudentB"> Student B </option> </select> </td> <td></td> </tr> </table>

Espero que así es como querías que funcionara.

over 4 years ago · Santiago Trujillo Relatório

0

Puede lograrlo activando un evento onchange en select y luego filtrando la matriz de estudiantes usando el método Array.filter() para obtener la opción seleccionada studentGrade .

Demostración de trabajo:

 const obj = { "students": [ {"studentName" : "studentA", "studentGrades" : "gradeC"}, {"studentName" : "studentB", "studentGrades" : "gradeA+"}, ] }; function getGrades() { const selectedOption = document.getElementById('dropdown').value; document.getElementById('studentGrade').innerHTML = obj.students.find((obj) => obj.studentName === selectedOption).studentGrades; }
 <table> <tr> <th>Student Name</th> <th>Student Grades</th> </tr> <tr> <td> <select name="dropdown" id="dropdown" onchange="getGrades()"> <option> - </option> <option value="studentA"> Student A </option> <option value="studentB"> Student B </option> </select> </td> <td id="studentGrade"></td> </tr> </table>

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda