2015-10-05 2 views
0

Я импортирую некоторые данные с PHP, который получает данные из базы данных SQL. Я использую AJAX для импорта данных с PHP на Javascript. Код PHP работает отлично и результаты в «2», но что-то случилось с моим кодом JavaScript:Что случилось с моим JSON.parse и почему код не выполнен в порядке появления?

<script> 
    $.getJSON("Kategorie1.php", function (data) { 
     window.nrFragen = JSON.parse(data); 
     window.alert(data) 
    }); 
    window.alert(window.nrFragen); 
</script> 

Если я бегу, он первым бежит window.alert(window.nrFragen) который предупреждает undefined, а затем window.alert(data), который предупреждает «2», а должно.

Почему он сначала запускает window.alert(window.nrFragen), хотя он написан после window.alert(data)? И почему не работает window.nrFragen = JSON.parse(data);?

+0

Это потому, что 'getJSON' является асинхронным вызовом. Он не будет ждать. –

+1

«импортировать данные из файла php в файл js» - jesus – m02ph3u5

ответ

1

$.getJSON is асинхронный.

$.getJSON("Kategorie1.php", function (data) { 
    //this will be called only after request completion 
    window.nrFragen = JSON.parse(data); 
    window.alert(data) 
}); 
//this will be called immediately after $.getJSON, it won't wait for request completion 
window.alert(window.nrFragen); 
+0

О, хорошо, спасибо. И что я могу сделать, чтобы программа могла дождаться, пока данные здесь? – loelu

+0

Второй параметр $ .getJSON - это обработчик успеха, который будет вызываться, когда запрос будет успешно завершен. Так что в этом обратном вызове _data уже здесь. Вам лучше прочитать [docs] (http://api.jquery.com/jquery.getjson/). Также читайте несколько статей о асинхронном программировании javascript (или любом другом языке), например [this] (http://www.html5rocks.com/en/tutorials/async/deferred/). – ieaglle

+0

Не уверен, что если я правильно вас понимаю, мне нужны данные для остальной части кода, поэтому я должен просто оставить оставшуюся часть кода запустимым после 'window.nrFragen = JSON.parse (data);' – loelu

Смежные вопросы