단순한 스크립트를 만들어 코드 조각을 루프에서 실행할 수 있습니다.JavaScript 변수가 아약스 외부에서 정의되지 않았습니다.
var num_rows_php;
var num_rows_sessions_php;
var num_rows_session_php_teste;
$.ajax({
url: 'verify_num_rows.php',
success: function(){
num_rows_php = "<?php echo $my_num_rows; ?>";
num_rows_session_php = "<?php echo $_SESSION['transaction_count']; ?>";
num_rows_session_php_teste = "<?php echo $_SESSION['teste_num']; ?>";
alert('num_rows_session' + num_rows_session_php);
alert('num rows session php teste' + num_rows_session_php_teste);
},
});
alert('teste fora do ajax' + num_rows_session_php_teste);
여기에 문제가있는 부분 만 게시했습니다. 그래서 저는 아약스 함수 밖에서 변수를 생성합니다. 그래서 아약스 함수 안에서 변수를 업데이트 할 수 있습니다. 이 코드는 매 5 초마다 실행되므로 AJAX 호출이 먼저 이루어지지 않아도 변수는 언제든지 업데이트되어야합니다. 내 문제는, 내가 알리미 아약스 함수 내에서, 값이 올바른지,하지만 아약스 함수 외부의 경고 변수가 정의되지 않은 말합니다. 코드가 10 번 실행 된 후에도 alert('teste fora do ajax' + num_rows_session_php_teste);
은 정의되지 않습니다. 왜 이런거야 ?
편집 :
내가이 시도 : 이$.ajax({
url: 'verify_num_rows.php',
success: function(){
num_rows_php = "<?php echo $my_num_rows; ?>";
num_rows_session_php = "<?php echo $_SESSION['transaction_count']; ?>";
num_rows_session_php_teste = "<?php echo $_SESSION['teste_num']; ?>";
alert('num_rows_session' + num_rows_session_php);
alert('num rows session php teste' + num_rows_session_php_teste);
if (num_rows_session_php_teste != num_rows_session_php)
{
alert(num_rows_session_php_teste);
// alert (num_rows_session_php);
$('#tbody').load('table_body.php')
$('#myfooter').load('myfooter.php')
$('#my-list').load('mylist.php')
}
},
});
아약스 성공 함수 내에서 모든과 변수는 경고의 순간에 정의되어 있지 않습니다.
호출합니다. Sync vs Async – Navaneeth
에 대해 살펴보십시오. 그러나 변수를 값으로 설정하면 안됩니다. –
아약스 성공에 당신의 행동을하거나 아약스를 일시적으로 동기화 시키십시오. 문맥에 따라 달라지는 –