#jquery #http-post #each
#jquery #http-post #каждый
Вопрос:
Как получить доступ к переменной из функции $post в $.each.
Мой код:
var invoice_id;
$.post("<?=base_url()?>appointments/getId",{'code':code}, function(data) {
var Obj = JSON.parse(data);
console.log(Obj);
invoice_id = Obj.invoice_id;
});
$.each(Arr,function(i,Obj){
invoice = invoice_id;
console.log(invoice);
});
Мне нужно получить доступ к invoice_id в функции $.each.В настоящее время я становлюсь неопределенным.
Пожалуйста, помогите, спасибо
Комментарии:
1. Вы можете поместить $.each в функцию обратного вызова $.Post
2. Есть ли у вас console.log(invoice_id) в обратном вызове post, чтобы убедиться, что он не определен в ответе от сервера?
Ответ №1:
Обратите внимание, что $.post
выполняется асинхронный HTTP (Ajax) запрос, следовательно, результирующие данные должны обрабатываться функцией обратного вызова.
var invoice_id;
$.post("<?=base_url()?>appointments/getId",{'code':code}, function(data) {
var Obj = JSON.parse(data);
console.log(Obj);
invoice_id = Obj.invoice_id;
$.each(Arr,function(i,Obj){
invoice = invoice_id;
console.log(invoice);
});
});
Комментарии:
1. Но он уже установил invoice_id глобально. Скорее всего, он получает неопределенный ответ от сервера.
2. @wrxsti не совсем,
$.post
это асинхронно, поэтому в то время$.each
используетсяinvoice_id
, оно не определено,$.each
правильным способом является размещение в завершенном / выполненном обратном вызове.3. Это также очень вероятная возможность.
4. @KingKing Да, именно.
5. @wrxsti: Как из личного опыта, так и из просмотра, это почти всегда проблема 😉