I failed to write a condition inside of ajax by using the following syntax.
var num = 1; $.ajax({ type: "POST", //condition starts if (num === 1){ url: url1, data: data1, }else{ url: url2, data: data2, } //condition finishes success: success, dataType: dataType });
but this way works.
var num = 1; if(num === 1){ $.ajax({ type: "POST", url: url1, data: data1, success: success, dataType: dataType }); }else{ $.ajax({ type: "POST", url: url2, data: data2, success: success, dataType: dataType }); }
the 2nd method is not quite ideal as repeating my code. is my first script in a wrong syntax? Could someone please point out? thanks
is my first script in a wrong syntax?
Yes, absolutely. You were just inserting if-else-statement parts in the middle of an object literal. You should use something like this:
var params = { type: "POST", success: success, dataType: dataType }; if (num == 1) { params.url = url1; params.data = data1; } else { params.url = url2; params.data = data2; } $.ajax(params);
Or if you want to inline them, you can use the ternary operator:
$.ajax({ type: "POST", url: (num == 1) ? url1 : url2, data: (num == 1) ? data1 : data2, success: success, dataType: dataType });
(If you don't want to repeat the condition, store its boolean result in a variable)
You could do it like this:
var num = 1, url, data; if (num === 1) { url = url1; data = data1; } else { url = url2; data = data2; } $.ajax({ type: "POST", url: url, data: data, success: success, dataType: dataType });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With