none
Não persiste no BD, função com jquery gravando em duas tabelas RRS feed

  • Pergunta

  • A minha necessidade é a seguinte. Gravo em uma tabela, pego o ID gerado e gravo na segunda tabela com esse ID. Como a ordem é fazer isso em Jquery, foi feita uma função(por colega) e não grava. Veja que há duas chamadas no ajax. Se eu removo a segunda etapa(persistir na segunada tabela), funciona, mas quando eu habilito o segundo código, aí não funciona nada, nem a 1ª e nem a 2ª. Abaixo meu código jquery. Se fosse fazer no Code Behind, eu sei fazer, pois já fiz muito, mas com jquery eu não estou conseguindo. Qualquer ajuda e opinião é bem-vinda.

    $(function () {

                $("#btnGravarPassageiros").click(function () {

                    var result = {
                        Id: 0,
                        Nome: $("input[name ='txtNome']").val(),
                        CPF: $("input[name='txtCep']").val(),
                        Email: $("input[name='txtEmail']").val(),
                        DataNascimento: $("input[name='txtAno']").val() + "-" + $("input[name='txtMes']").val() + "-" + $("input[name='txtDia']").val(),
                        Telefone: $("input[name='txtTelefone']").val(),
                        Celular: $("input[name='txtCelular']").val(),
                        Endereco: $("input[name='txtLogradouro']").val(),
                        Numero: $("input[name='txtNumero']").val(),
                        CEP: $("input[name='txtCep']").val(),
                        Complmento: $("input[name='txtComplemento']").val()
                    };

                    var result =  [];
                    var resultado;
                    var cont = 0


                    $.ajax({
                        url: '/Passo/addCliente',
                        dataType: "json",
                        contentType: "application/json; charset=utf-8",
                        type: "POST",
                        data: JSON.stringify({ _tb_clientes: result }),
                        success: function (data) {

                            alert(data.Result);

                            $(".passageiro").each(function () {

                                nm = "txtNomePassageiro" + cont;
                                dia = "txtDiaPassageiro" + cont;
                                mes = "txtMesPassagecontro" + cont;
                                ano = "txtAnoPassagecontro" + cont;
                                sexo = "txtSexo" + cont;
                                numpassaporte = "txtPassaporte" + cont;
                                diavalidade = "txtDiaVal" + cont;
                                mesvalidade = "txtMesVal" + cont;
                                anovalidade = "txtAnoVal" + cont;
                                paisemissao = "txtPaisEmissao" + cont;



                                resultado = jQuery.parseJSON('{"Id_Cliente" : "' + data.Result +'" , "Nome": "' + $("input[name =" + nm + "]").val() +
                                    '", "PassaPorte": "' + $("input[name =" + numpassaporte + "]").val() + '", "DataNascimento": "' + $("input[name =" + dia + "-" + mes + "-" + ano + "]").val() +
                                    '", "Sexo": "' + $("input[name =" + sexo + "]").val() + '", "PassaPorteValidade": "' + $("input[name =" + diavalidade + "-" + mesvalidade + "-" + anovalidade + "]").val() +
                                    '", "PassaPortePais": "' + $("input[name =" + paisemissao + "]").val() + '" }');

                                result.push(resultado);

                                cont++;
                            });
                          
                            $.ajax({
                                url: '/Passo/addClientePassageiro',
                                dataType: "json",
                                contentType: "application/json; charset=utf-8",
                                type: "POST",
                                data: JSON.stringify({ _tb_clientes: result }),
                                success: function (data) {
                                
                                },
                                error: function (error) {


                                }
                            });                           
                        },
                        error: function (error) {

                        }
                    });
                });
            });
    segunda-feira, 17 de março de 2014 11:48

Respostas

  • eu tenho apanhado bastante com jquery. O erro estava aqui:

    var result = [];

    A variavel result já havia sido declarada. Alterei para:

    var dados []; e aí resolveu. Agora sim, está gravando.

    OBRIGADO A TODOS.

    • Marcado como Resposta pnet segunda-feira, 17 de março de 2014 14:04
    segunda-feira, 17 de março de 2014 14:03