デフォルトでは、AJAX 呼び出しは非同期です (AJAX の最初の "A" は非同期を表します)。これは、成功ハンドラーが後で呼び出されることを意味します。dchしたがって、関数が返されたときに の値がまだ設定されていないため、しようとしているように、関数からの AJAX 呼び出しからの応答を返すことはできません。
代わりに、コードを再構築して、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);
}
});