1
I got the following button
:
<a asp-controller="Checkout" asp-action="Checkout" class="btn btn-success btn-lg btn-block pull-right" onclick="Checkout()">Finalizar</a>
he calls the following function
:
function Checkout() {
var cookieValue = document.cookie.replace(/(?:(?:^|.*;\s*)Projeto\s*\=\s*([^;]*).*$)|^.*$/, "$1");
var arrayProdutos = $.parseJSON(cookieValue);
$.ajax({
type: "POST",
url: '/Checkout/Checkout',
dataType: 'json',
async: false,
data: {
'produtos': arrayProdutos
},
success: function (data) {
produtos.forEach(function (produto, i) {
produto["Imagem"] = data[i].imagem.replace("~", "");
produto["Descricao"] = data[i].descricao;
setCookie();
});
CheckoutView();
},
error: function (error) {
alert('Nao enviou');
}
});
}
As seen he goes to the controller
, then returns, at the end of the success
, I call another Function:
function CheckoutView() {
var cookieValue = document.cookie.replace(/(?:(?:^|.*;\s*)Projeto\s*\=\s*([^;]*).*$)|^.*$/, "$1");
if (cookieValue != "") {
produtos = $.parseJSON(cookieValue);
}
total = 0;
$(produtos).each(function (i) {
total += produtos[i].Valor * produtos[i].Quantidade;
});
ItemProduto = "";
$(produtos).each(function (i) {
ItemProduto += '<tr>';
ItemProduto += '<td data-th="Product">';
ItemProduto += '<div class="row">';
ItemProduto += '<div class="col-sm-2 hidden-xs"><img src="' + produtos[i].Imagem + '" alt="..." class="img-responsive"/></div>';
ItemProduto += '<div class="col-sm-10">';
ItemProduto += '<h4 class="nomargin">' + produtos[i].Nome + '</h4>';
ItemProduto += '<p>' + produtos[i].Descricao + '</p>';
ItemProduto += '</div>';
ItemProduto += '</div>';
ItemProduto += '</td>';
ItemProduto += '<td data-th="Price">R$ ' + produtos[i].Valor + '</td>';
ItemProduto += '<td data-th="Quantity">';
ItemProduto += '<input type="number" class="form-control text-center" value="' + produtos[i].Quantidade + '" id="' + produtos[i].Id + '" onchange="AlterarQtd(' + produtos[i].Id + ',this.value);">';
ItemProduto += '</td>';
ItemProduto += '<td data-th="Subtotal" class="text-center">' + (produtos[i].Valor * produtos[i].Quantidade).toFixed(2) + '</td>';
ItemProduto += '<td class="actions pull-right" data-th="">';
ItemProduto += '<button class="btn btn-danger btn-sm" onclick="RemoveAll(' + produtos[i].Id + ')"><i class="fa fa-trash-o"></i></button>';
ItemProduto += '</td>';
ItemProduto += '</tr>';
});
$("#produto").html(ItemProduto);
$("#total").html("R$ " + total.toFixed(2));
}
But I want Function Checkoutview(), load only after my page has been loaded/redirected to another.
before I was using: if (window.location.pathname === "/Checkout/Checkout") {
or instead function CheckoutView()
, and it worked because I need to call her Function because I need to use it later, to be called at another time.
When the page is loaded/redirected?
– Sam
It is currently on the button: Asp-controller="Checkout" Asp-action="Checkout", it goes on the controller’s get and reloads, that at the same time as it does onclick="Checkout()", in which it goes in the POST method, and redirect within the Success : Success: Function (date) ? window.Location = "/Checkout/Checkout"; and then call Function, but it executes everything to then redirect
– Luks Indie