我想使Ajax URL动态化,我想要的是sub
和nbr
参数,如果它们等于All
或null
仅传递{{1} }。
我该怎么做?
org_id
答案 0 :(得分:2)
为什么不做这样的事情?
let url_to_send = `${baseURL}/submitform/get/${org_id}`;
if (sub === 'ALL') { // or 'ALL' if you meant a string rather than some declared value
url_to_send += `/${sub}`
}
if (nbr === 'ALL') { // or 'ALL' if you meant a string rather than some declared value
url_to_sned += `/${nbr}`;
}
$.ajax({
type: "GET",
url: url_to_send,
success: function(res) {
parseJSON(res);
});
将其放在带有nbr和sub参数的函数中,或者使用您使用的函数,URL会动态生成。这是我通常的处理方式
如果您使用的是es6,还可以使用模板字符串,并在其中添加三元条件,以便在ajax调用中以这种方式生成您的网址:
$.ajax({
type: "GET",
url: `${baseURL}/submitform/get/${org_id}${(sub === 'ALL') ? `/${sub}` : ''}${(nbr === 'ALL') ? `/${nbr}` : ''}`,
success: function(res) {
parseJSON(res);
});
答案 1 :(得分:1)
您可以使用$.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);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>