Это потому, что следующий код выполняется перед функцией обратного вызова в вашем запросе $.get()
:
if(amount>0)
{
alert('This option has been selected, please select another one');
}
Вызовы AJAX являются асинхронными, что означает, что код вокруг них выполняется, когда вызов AJAX ожидает ответа,Поэтому код if(amount>0)
выполняется до срабатывания обратного вызова AJAX (это означает, что для вашего if/then
оператора amount
всегда будет равно null
).
Чтобы сделать то, что вы хотите, я предлагаю поместить этот код внутрьфункция обратного вызова для вашего $.get()
запроса:
$('#selectone').change(function(){
$.get('search.php', {search:'units'}, function(result){
//this will return only one or zero for me.
if(result>0)
{
alert('This option has been selected, please select another one');
}
});
});
- Обновление -
Вы также можете использовать метод jQuery $.when()
:
$('#selectone').change(function(){
var amount;
var jqXHR = $.get('search.php', {search:'units'}, function(result){
//this will return only one or zero for me.
amount = result;
});
$.when(jqXHR).then(function () {
if(amount>0)
{
alert('This option has been selected, please select another one');
}
});
});