Abstraindo Multiplas chamadas jQuery (Ajax)
Quando se tem várias chamadas AJAX (jQuery) na mesma página, ou projeto, fica mais fácil abstrair as chamadas de forma que as chamadas na página diminuam a complexidade e possibilidade de erro. Para tal, pode-se criar um método Generico de acordo com o tipo de submissão ajax. Neste caso, usa-se post:
function Post(method, datanames, data, callback) { var datastring = ""; var size = $(datanames).size(); if (datanames != null && data != null) { if (size > 0) { $(datanames).each(function (index, value) { datastring += value + ":'" + data[index] + "'"; if (index < size - 1) datastring += ","; }); } else datastring = datanames + ":'" + data + "'"; } var response = $.ajax({ type: "POST", url: page + method, data: "{ " + datastring + " }", contentType: "application/json; charset=utf-8", dataType: "json", success: function (d) { callback(d); } }); }
Note que os argumentos precisam ser processados, por isso temos que fazer algumas validações no código.
Após a criação do método, é possível fazer uma chamada mais simples, de qualquer outra parte do projeto:
//Nova tabela completa $("#btnNovaTabela").click(function () { var nome, sobrenome, pontos, method; nome = $("#txtNome").val(); sobrenome = $("#txtSobrenome").val(); pontos = $("#txtPontos").val(); method = "NovaTabela"; var args = [nome, sobrenome, pontos]; var argnames = ["nome", "sobrenome", "pontos"]; Post(method, argnames, args, function (response) { $("#conteudo-dinamico-table").append(response.d); $("input").each(function () { $(this).val(""); }); }); });
Faça o download do código deste exemplo
Faça o download do código pronto para rodar (unzip em C:\)