По умолчанию вызов AJAX является асинхронным (это то, что первый «А» в AJAX расшифровывается - асинхронный). Это означает, что обработчик успеха будет называться SOMETIME LATER. Таким образом, вы не можете вернуть ответ от вызова AJAX из функции, как вы пытаетесь сделать, потому что значение dch
еще не установлено, когда функция возвращается.
Вместо этого вы должны перестроить свой код, чтобы любой код, требующий ответа от вызова ajax, был либо в обработчике успеха, либо вызван из обработчика успеха (и вы передаете ему результат ajax). Вы просто не можете написать простой последовательный процедурный код с асинхронными вызовами ajax. Вы должны изучить новый способ структурирования вашего кода для работы с асинхронным вызовом AJAX.
var aid='11111111V';
$.ajax({
type:"POST",
url:"new_hpa_fun_aplcval.php",
data:"aid="+aid,
success: function(msg) {
var dch = 0;
if (msg =='OK'){
dch=1;
} else {
dch=2;
}
// put your code here that uses the result of the AJAX call
alert(dch);
}
});
возможно дубликат [Как вернуть ответ от вызова AJAX?] (Http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax- call) –
Можете ли вы разместить свой php-файл? Вы наблюдаете какие-либо ошибки консоли, используя инструменты, такие как инструменты firebug/developer? –