TransWikia.com

Cargar campos select con ajax

Stack Overflow en español Asked by Rodrigo Jaque on November 17, 2021

tengo un problema y necesito de sus consejos.
Tengo una aplicación donde hay cliente con rut, que tienen uno o varios contactos.
Entonces quiero cargar un select con los contactos, solo si el usuario hace clic en campo select. Ya que en la página hay muchos clientes con select parecidos y cargarlos todos con php hace que demore mucho la respuesta.
Entonces imagino que si yo le digo que solo me cargue los datos en el select que el usuario hace clic, baja bastante la carga de la página.

Entonces asumo que el código es algo como esto:
Html

<select  id="contacto_<?php echo $nrofactura>" name="contacto"
onclick="fnjs_cargaContactosRut( $rut, $factura)" >
<option selected="">Selecionar</option>
</select>`

( Recuerden que hay muchos select en cada página por eso el nombre es así."contacto_<?php echo $nrofactura")

Y el javascript es como este:

function fnjs_cargaContactosRut( rut, factura)
{
    var varrut = rut;
    var campo = "contacto_" + factura;
    var sel = document.getElementById(campo);
    var opt = document.createElement("option");
       $.get("Connections/funcionesJava.php", { cod: 26,  rut: varrut},
       function(htmlExternoPHP7)
       {
        opt.value = "3";
        opt.text = htmlExternoPHP7;
        sel.add(opt, null);
      });
 }

El problema es que solo me trae un dato por cada vez que le hago clic al select y mas encima siempre me trae el contacto repetido por cada rut.
En php, conozco como hacer la consulta a la base de datos, y que me devuelva varios campos a la vez, pero en javascript no encuentro como se debe hacer para que me entregue mas de un contacto del cliente a la vez. O que le diga a PHp en que orden debe recibir la respuesta.
Asumo que me falta un while o algo, pero desconozco cómo ordenar el código para que sea eficiente y traiga todos los contactos de un rut y su ID al mismo tiempo.
Como les dije antes, solo quiero que se active un select y sus opciones al hacer clic en el. No que los traiga desde el principio.

Su ayuda por favor.

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP