Ich mache ein einfaches Skript, so dass ein Stück Code in einer Schleife laufen kann.JavaScript Variable undefined außerhalb Ajax
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);
Ich habe nur den relevanten Teil hier, wo mein Problem ist. Also erstelle ich die Variablen außerhalb der Ajax-Funktion, damit ich sie innerhalb der Ajax-Funktion aktualisieren kann. Dieser Codeabschnitt wird alle 5 Sekunden ausgeführt. Selbst wenn der Ajax-Aufruf nicht zuerst erfolgt, sollten die Variablen jederzeit aktualisiert werden. Mein Problem ist, wenn ich die Alerts innerhalb der Ajax-Funktion mache, sind die Werte korrekt, aber die Warnung außerhalb der Ajax-Funktion sagt die Variable ist undefiniert. alert('teste fora do ajax' + num_rows_session_php_teste);
ist undefiniert, auch wenn der Code 10 mal läuft. Warum ist das ?
EDIT:
ich das versucht:
$.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')
}
},
});
alles in Ajax-Erfolg Funktion und die Variable wird in dem Moment der Benachrichtigung nicht definiert.
, dass wegen der Asynchronous ist aufruft. Sehen Sie auf Sync vs Async – Navaneeth
, aber wenn ich die Variable auf einen Wert setzen, sollte es nicht bleiben? –
machen Sie Ihre Aktion in AJAX-Erfolg oder machen Sie AJAX temporäre Synchronisierung. –