Доступ к переменной i foreach

#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: Как из личного опыта, так и из просмотра, это почти всегда проблема 😉