正しく動作する AJAX 関数がありますが、ページの後半で関数内で宣言している変数にアクセスできないようです。以下のコードを見ると、機能する関数内で変数 number_rows を警告していることがわかりますが、関数の外でログに記録しようとすると、「未定義」として返されます。
var newData = "user_id=" + id;
$.ajax({
type: 'POST', // HTTP method POST or GET
url: 'ajax.php', //Where to make Ajax calls
dataType:'text', // Data type, HTML, json etc.
data:newData, //post variables
success:function(response){
var number_rows = response;
alert(number_rows);
},
error:function (xhr, ajaxOptions, thrownError){
alert(xhr + " " + ajaxOptions + " " + thrownError); //throw any errors
}
});
console.log(number_rows);
私の範囲が外れている可能性があることを理解しています。すべてのコードを success 関数内に移動しようとしましたが、他の多くの問題が発生したため、最も簡単な方法は、応答変数をページの残りのコード全体で使用できるグローバル変数にすることです。私も次のようなことを試しました:
success:function(response){
$('body').append('<span class="ajax_response" id="' + response + '"></span>');
}
var number_rows = $('.ajax_response').attr('id');
console.log(number_rows);
しかし、何らかの理由で、すぐに ID 値を取得することができません。スパンが正しい ID 値で作成されていることを確認できますが、何らかの理由で正しく処理されません。これについての助けをいただければ幸いです。
ありがとう!