我制作一个简单的脚本,这样一段代码就可以循环运行。
alert('teste fora do ajax' + num_rows_session_php_teste);
我只在这里发布了相关部分,问题出在哪里。所以我在ajax函数之外创建变量,所以我可以在ajax函数内更新它们。这段代码每5秒运行一次,所以即使首先没有调用ajax,变量也应该随时更新。我的问题是,当我在ajax函数中执行警报时,值是正确的,但是ajax函数之外的警告说该变量是未定义的。
即使代码运行了10次, $.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')
}
},
});
仍未定义。这是为什么?
编辑:
我试过这个:
with t1 as (
select 'aK' col1, 'Mbcd' col2, 'ABc' col3, 'defgh' col4
---
SELECT LEFT(col, LEN(col) - 12) col1,
RIGHT(LEFT(col, LEN(col) - 8), 4) col2,
RIGHT(LEFT(col, LEN(col) - 4), 4) col3,
RIGHT(col, 4) AS col4
FROM
(
SELECT col1+','+col2+','+col3+','+col4 AS col
FROM t1
) t;
ajax成功函数内的所有内容,并且在警报发生时该变量未定义。
答案 0 :(得分:0)
您不能指望$ .ajax为num_rows_session_php_teste
分配值。由于JS本质上是异步的,因此在$ .ajax发生之前可能会调用alert。因此,从警报访问时,num_rows_session_php_teste
可能是未定义的。
答案 1 :(得分:0)
尝试在ajax函数上添加async:false,
$.ajax({
url: 'verify_num_rows.php',
async: false,
success: function(){
}
})