none
Como pasar los id uno por uno de un arreglo json a un procedimiento almacenado que solo solicita un parámetro? RRS feed

  • Pregunta

  • Hola amigos me encuentro con un problema espero me puedan ayudar de antemano se los agradezco mucho.

    De mi arreglo de objetos Json he podido obtener todos los id como se muestra en el siguiente código.

    for(var x in valores){                  
                   resultado = valores[x]['id_Persona'];                       
                   alert(resultado);
               }

    En mi ajax necesito pasar este id uno por uno ya que mi procedimiento solo recibe un parámetro.

    var id_Persona = resultado;
    
    
        if (id_Persona != 0) {            
            $.ajax({
                type: "POST",
                dataType: "json",
                url: "frmPersonas.aspx/Obtener_Personas",
                contentType: "application/json; charset=utf-8",
                data: '{id_persona:"' + id_Persona + '"}',  // Aqui es donde quiero pasarle los id uno por uno los cuales los obtuve arriba.

    Alguien sabe como se le puede hacer para pasar estos id uno por uno.

    Cabe resaltar que no tengo error ninguno al momento de traer los datos. Espero me puedan ayudar de antemano se los agradezco.

    domingo, 24 de febrero de 2019 4:03

Respuestas

  • Alguien sabe como se le puede hacer para pasar estos id uno por uno.

    Como poder, podrías hacerlo. Para ello tendrías que meter el $.ajax dentro del bucle que devuelve todos los id.

    for(var x in valores){                  
        id_Persona = valores[x]['id_Persona'];                       
        if (id_Persona!= 0) {            
            $.ajax({
                type: "POST",
                dataType: "json",
                url: "frmPersonas.aspx/Obtener_Personas",
                contentType: "application/json; charset=utf-8",
                data: '{id_persona:"' + id_Persona + '"}',  // Aqui es donde quiero pasarle los id uno por uno los cuales los obtuve arriba.
                .......
        }
    ]

    Pero es una idea bastante mala. Eso ocasionaría que el navegador haga una llamada http al servidor por cada ID, cosa que se volverá lenta si hay muchos IDs y/o si la red tiene una latencia alta, aparte de ocasionar un mayor tráfico de red.

    En su lugar hay otra opción mejor: pasa el JSON completo al servidor, o pasa un array con los IDs si no necesitas ninguna otra cosa del JSON. En el lado servidor, deserializas el JSON usando alguno de los muchos deserializadores que existen como por ejemplo Newtonsoft.Json, y entonces ahí escribes el bucle que hace una llamada al procedimiento por cada ID que encuentres. Esto te ahorra las múltiples llamadas via AJAX.


    domingo, 24 de febrero de 2019 8:40