3 votes

Supprimer le paramètre facultatif de l'URL AJAX

Je veux rendre l'URL ajax dynamique, ce que je veux c'est que les paramètres sub et nbr s'ils sont égaux à All ou null, passent seulement org_id.

Comment puis-je faire cela ?

$.ajax({
   type: "GET",
   url: baseURL + "/submitform/get/" + org_id + "/" + sub + "/" + nbr,
   success: function(res) {           
        parseJSON(res);
});

2voto

chevybow Points 1056

Pourquoi ne pas faire quelque chose comme ça ?

let url_to_send = `${baseURL}/submitform/get/${org_id}`;
if (sub === 'ALL') { // ou 'ALL' si vous vouliez une chaîne de caractères plutôt qu'une valeur déclarée
    url_to_send +=  `/${sub}`
}
if (nbr === 'ALL') { // ou 'ALL' si vous vouliez une chaîne de caractères plutôt qu'une valeur déclarée
    url_to_sned += `/${nbr}`;
}

$.ajax({
   type: "GET",
   url: url_to_send,
   success: function(res) {           
        parseJSON(res);
});

Mettez ceci dans une fonction avec des paramètres pour nbr et sub, ou quelle que soit votre utilisation, et l'URL sera générée dynamiquement. C'est ainsi que je procède habituellement

Vous pouvez également utiliser des chaînes de modèles si vous utilisez es6 et insérer des conditionnels ternaires pour générer votre URL de cette façon directement dans l'appel ajax :

$.ajax({
       type: "GET",
       url: `${baseURL}/submitform/get/${org_id}${(sub === 'ALL') ? `/${sub}` : ''}${(nbr === 'ALL') ? `/${nbr}` : ''}`,
       success: function(res) {           
            parseJSON(res);
    });

1voto

Zakaria Acharki Points 52620

Vous pouvez les vérifier en utilisant la fonction $.in_array:

var baseURL = "baseURL";
var org_id = 111;
var sub = "All";
var nbr = null;
var conditions = ['All', null];
var url = baseURL + "/submitform/get/" + org_id;

if ($.inArray(sub, conditions) === -1 && $.inArray(nbr, conditions) === -1) {
  url += "/" + sub + "/" + nbr;
}

console.log(url);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X