2010-10-03 4 views
0

Я использую jQuery $ .get(), чтобы узнать, сколько записей в таблице. Я хочу, чтобы возвращаемое значение было Int, но это похоже на что-то другое. Как мне с этим работать? это код, который у меня есть. Я уверен, что я просто ошибаюсь. Мой фон - много java.получение значения из возврата php в javascript

var num = checksize(); 

function checksize(){ 
$.get("../php/checktablezie.php", function(data){ 
    return data; 
}); 
} 
+1

вы должны выполнить синхронный вызов, а не асинхронный. http://stackoverflow.com/questions/133310/how-can-i-get-jquery-to-perform-a-synchronous-rather-than-asynchronous-ajax-req –

+0

Обратите внимание, однако, что синхронные вызовы могут блокироваться браузер полностью. JavaScript не создан для синхронной работы такого типа, поскольку он управляется событиями и не имеет реальной «паузы». –

ответ

2

Вы не можете этого сделать. $ .get - это асинхронный запрос, поэтому функция checksize() будет немедленно возвращаться. Ваша анонимная функция будет выполнена, когда вызов Ajax будет выполнен, но это будет сделано после того, как будет возвращена функция checksize().

Вместо этого, вы должны поставить все, что должно быть сделано с num внутри анонимной функции, например:

function checksize(){ 
$.get("../php/checktablezie.php", function(data){ 
    num = data; 
    //The code that is in need of num should be put in here. 
    //e.g., if you're updating the GUI with the value, put that code here. 
}); 
} 
1

Можем ли мы написать такие функции для бессимптомных вызовов ajax, поскольку он может завершить вызов параллельно.

+0

Вы задаете вопрос? Я думаю, вы, возможно, были правы. Причина, если я поставил предупреждение после num = checksize(), а другое перед данными возврата, первое после num = checksize() идет первым. – JamesTBennett

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