How to save selected items at check from bank using AJAX, Jquery, and C# MVC?

Asked

Viewed 253 times

1

I have a form that shows me a list coming from the bank in checkbox form. How can I identify which items on the list were marked in the save? I carry it like this:

function CarregaSaida() {
    $.ajax({
        url: "/Qualidade/Entidade/CarregaEntidade",
        //data: { representante: representante },
        async: false,
        success: function (data) {
            $("#divSaidas").empty();
            $.each(data, function (i, element) {

            $('#divSaidas').append('<input type="checkbox" name="descricao" id="' + element.Id + '" />' + element.Descricao + '<br/>');

            });

        }
    });
}

html :

<div class="form-group">
   <label class="col-md-2 control-label">Saída</label>
       <div class="col-md-10">
           <div class="mt-checkbox-inline" id="divSaidas"></div>
            <span class="label label-danger" id="errosaida"></span>
        </div>
 </div>

Upshot:

inserir a descrição da imagem aqui

to save:

function Post(){
var dados = $("Form").serialize();
//var confirmationValue = null; //Essa variavel é apenas de teste, pra guardar temporariamente o retorno da requisição

      jQuery.ajax({
        type: "POST",
        url: "/Qualidade/Processo/Salvar",
        dataType: "json",
        data: dados,
        success: function(data)
        {    
            //fecha o modal de confimação
            $('#myModal').modal('hide');

            //retorna uma resposta de sucesso NA DIV RESPOSTA            
            $("#resposta").addClass("alert alert-success");     // COLOCA NA CLASSE DE SUCESSO (VERDE)        
            $('#resposta').html('Contato Salvo com sucesso!'); //CRIA A MENSAGEM


        },
        error: function (request, status, erro) {



             },
                 complete: function (jqXHR, textStatus) {
               processo (finnaly)
              }
       });
}

Backend caught like this:

[HttpPost]
        public JsonResult Salvar(Processo u)
        {
            var descricao = u.Descricao;
            Dao.Salvar(descricao);
            return Json("Dados salvo com sucesso!!");
        }

2 answers

0


//Mostra a lista de Check
    function CarregaSaida() {
        $.ajax({
            url: "/Qualidade/Entidade/CarregaEntidade",
            //data: { representante: representante },
            async: false,
            success: function (data) {
                $("#divSaidas").empty();
                $.each(data, function (i, element) {

                    $('#divSaidas').append('<input type="checkbox" id="saidas" name="saidas" value="' + element.Id + '" />' + element.Descricao + '<br/>');

                });

            }
        });
    }

//Função que pecorre os checks que estão marcados
    function PegaValuesChecks(name) {
        var checks = document.querySelectorAll("input[name='" + name + "']:checked"),
               i = checks.length,
               arr = [];

        while (i--) {
            arr.push(checks[i].value);
        }

        return arr;
    }
    //Envia pro backend salvar o form
    function Post() {

        //pega os arrays de checkbox selecionados para enviar ao controller
        var entrada = PegaValuesChecks("entrada");
        var saidas = PegaValuesChecks("saidas");
        var materiais = PegaValuesChecks("materiais");
        var metodos = PegaValuesChecks("metodos");
        var medicao = PegaValuesChecks("medicao");
        var pessoais = PegaValuesChecks("pessoais");

        var plan = $("#plan").val();
        var do_ = $("#do").val();
        var check = $("#check").val();
        var action = $("#action").val();


      dados = $("Form").serialize();
        var dados = {        
            entrada: entrada,
            saidas: saidas,
            materiais: materiais,
            metodos: metodos,
            medicao: medicao,
            pessoais:pessoais,
            plan: plan,
            do_: do_,
            check: check,
            action: action
        };
    //var confirmationValue = null; //Essa variavel é apenas de teste, pra guardar temporariamente o retorno da requisição

          jQuery.ajax({
            type: "POST",
            url: "/Qualidade/Processo/Salvar",
            dataType: "json",
            data: dados,
            success: function(data)
            {    
                //fecha o modal de confimação
                $('#myModal').modal('hide');

                //retorna uma resposta de sucesso NA DIV RESPOSTA            
                $("#resposta").addClass("alert alert-success");     // COLOCA NA CLASSE DE SUCESSO (VERDE)        
                $('#resposta').html('Contato Salvo com sucesso!'); //CRIA A MENSAGEM
                $('#resposta').show(); //MOSTRA A DIV DE RESPOSTA

            },
            error: function (request, status, erro) {

                 },
                     complete: function (jqXHR, textStatus) {
                    //colocar aqui algo que deseja que faça ao terminar todo o processo (finnaly)
                  }
           });
    }

Backend:

 [HttpPost]
    public JsonResult Salvar(string[] entradas,string[] saidas,string[] materiais,string[] metodos, string[] medicao,string[] pessoais,string plan, string do_,string check, string action )
    {

     //No DAO do salvar, Fazer um for ou while ou foreach pra pecorrer e inserir na tabela
        Dao.Salvar(entradas,saidas,materiais,metodos, medicao, pessoais,plan, do_,check,action);
        return Json("Dados salvo com sucesso!!");
    }

-1

I did a task very similar to yours weeks ago, at the time I had a checklist_attendance table where the user created Checklist linked to category and another checklist history that stored the options that the user selected to categorize that service. Well, I created a partial view in which I passed as parameter to category, I created three lists (one to load all the options as false, one to pick the description, the other the ids), at the time of the post I passed the three lists as parameter to save.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.