how to get the dynamic variable from the URL into the ajax url string?
how to get the dynamic variable from the URL into the ajax url string?
I'm a bit stuck, any help is gratefully received.
I’m opening a view with the following address: https://localhost:44322/Admin/Account/Details/3
At this point it has filtered out the account I’m looking for which has the Id 0f 3. It returns the relevant data. Also on the view is a Datatable which also needs to be filtered with the same ID.
}
the datatable calls the data as follows:
" function loadDataTable() {
dataTable = $('#tblData').DataTable({
"ajax": { "url": "/Admin/Account/DetailsByAccount" },
If I change it to:
function loadDataTable() {
dataTable = $('#tblData').DataTable({
"ajax": { "url": "/Admin/Account/DetailsByAccount?Id=3" },
I get all the related records for the Account with the ID of 3, just what I’m looking for.
I’ve tried everything I can find to get the dynamic variable from the URL into the ajax url string but the only thing I’ve got is a headache.
Any help is gratefully received.
full script:
var dataTable;
// Date renderer for DataTables from cdn.datatables.net/plug-ins/1.10.21/dataRender/datetime.js
// UMD
(function (factory) {
    "use strict";
if (typeof define === 'function' && define.amd) {
    // AMD
    define(['jquery'], function ($) {
        return factory($, window, document);
    });
}
else if (typeof exports === 'object') {
    // CommonJS
    module.exports = function (root, $) {
        if (!root) {
            root = window;
        }
        if (!$) {
            $ = typeof window !== 'undefined' ?
                require('jquery') :
                require('jquery')(root);
        }
        return factory($, root, root.document);
    };
}
else {
    // Browser
    factory(jQuery, window, document);
}
}
    (function ($, window, document) {
    $.fn.dataTable.render.moment = function (from, to, locale) {
        // Argument shifting
        if (arguments.length === 1) {
            locale = 'en';
            to = from;
            from = 'YYYY-MM-DD';
        }
        else if (arguments.length === 2) {
            locale = 'en';
        }
        return function (d, type, row) {
            if (!d) {
                return type === 'sort' || type === 'type' ? 0 : d;
            }
            var m = window.moment(d, from, locale, true);
            // Order and type get a number value from Moment, everything else
            // sees the rendered value
            return m.format(type === 'sort' || type === 'type' ? 'x' : to);
        };
    };
}));
$(document).ready(function ()
{
    loadDataTable(
);
});
function getUrlVars()
{
 var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}
function loadDataTable() {
    dataTable = $('#tblData').DataTable({
        "ajax": { "url": "/Admin/Account/DetailsByAccount" },
        "order": [[0, "desc"]],
    "columnDefs": [{
        "targets": 'nosort',
        "orderable": false
    }],
     "columns": [
        {"data": "proposalReference", "width": "30%",
        render: function (data, type, row, meta) {
                if (type === 'display') {
                    data = '<a href="/Admin/Proposal/Details/' + row.proposalId + '">' + data + '</a>';
                }
                return data;
            }
        },
        {
            "data": "account.companyName", "width": "20%",
            render: function (data, type, row, meta) {
                if (type === 'display') {
                    data = '<a href="/Admin/Proposal/Account/' + row.accountId + '">' + data + '</a>';
                }
                return data;
            }
        },
        { "data": "proposalDate", "width": "20%", "text-align": "center",
            render: function (data, type, row) {
                if (type === "sort" || type === "type") {
                    return data;
                }
                return moment(data).format("Do-MMM-YYYY");
            }
        },
        { "data": "proposalCategory.proposalCategoryName", "width": "20%" },
        {
            "data": "proposalId", "width": "10%",
            "render": function (data) {
                return `
                        <div class="text-center">
                            <a href="/Admin/Proposal/Upsert/${data}"  style="cursor:pointer">
                                <i class="fas fa-edit fa-lg"></i> 
                            </a> 
                            <a onclick=Delete("/Admin/Proposal/Delete/${data}")  style="cursor:pointer">
                                <i class="fas fa-trash-alt fa-lg"></i>
                            </a>
                        </div>
                       `;
            }, "width": "40%"
        }
    ]
});
}
function Delete(url) {
    swal({
        title: "Are you sure you want to Delete?",
        text: "You will not be able to restore the data!",
        icon: "warning",
        buttons: true,
        dangerMode: true
    }).then((willDelete) => {
        if (willDelete) {
            $.ajax({
                type: "DELETE",
                url: url,
                success: function (data) {
                    if (data.success) {
                        toastr.success(data.message);
                        dataTable.ajax.reload();
                    }
                    else {
                        toastr.error(data.message);
                    }
                }
            });
        }
    });
}
Answers
Sorted:
{
var url = window.location.href;
var parts = url.split("/");
var last_part = parts[parts.length - 1];
};
function loadDataTable() {
dataTable = $('#tblData').DataTable({
"ajax": { "url": "/Admin/Account/DetailsByAccount?ID=" + last_part},