Combo box atualizando em tempo real

43 views
Skip to first unread message

felipe...@tksolucoes.com.br

unread,
Apr 17, 2017, 10:11:01 AM4/17/17
to web2py-users-brazil
Bom dia, estou com uma duvida! 

Tenho um componente accordion dentro da minha pagina e na parte de cima o cliente insere o usuario e no de baixo ele ja pode vincular o usuário a um centro de custo, porém para o combo box atualizar tenho que dar um F5 na pagina pois ele pega somente a ultima consulta, porque a consulta vem a controller.

Como eu faria somente para atualizar o combo box em tempo real ? 

Pensei em colocar a consulta na view, pois pela logica ao clicar ele vai carregar em tempo real, porém seria a melhor solução ? como poderia criar esse laço ?  

Carlos Costa

unread,
Apr 17, 2017, 4:20:45 PM4/17/17
to web2py-us...@googlegroups.com
Sua ideia não funiona. Porque a view é renderizada somente uma vez, antes de devolver o resultado ao navegador.
De qualquer forma você tem que "refazer" o combo.
Existem várias formas de fazer isso.

Eu não entendi bem como está seu código e sua página, mas o ideal seria usar ajax de alguma forma.
Por exemplo, usando o componente LOAD para quando enviar pelo Submit do form, seja recarregado somente aquele pedaço da página, já com o valor atualizado.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

felipe...@tksolucoes.com.br

unread,
Apr 24, 2017, 8:13:25 AM4/24/17
to web2py-users-brazil
Bom dia!

Consegui a solução. 


$("#btn-cadastroemp").click(function () {
//Adicionando modal loading
//$("#loading").modal('show');

var fantasia = $('#cad-empfantasia').val();
var razao = $('#cad-emprazao').val();
var cnpj = $('#cad-empcnpj').val();
$.getJSON("{{=URL(c='admin', f='newemp.json')}}",{fantasia,razao,cnpj}, function(result){
//Atualiza Grid
atualizaGridEmp();
//Atualiza combobox
atualizaCombobox();
//RESETAR FORMULARIO AO INSERIR
$('#createnewemp').each (function(){
  this.reset();
});

 });   
      
});



function atualizaCombobox(){

$.getJSON("{{=URL(c='grid', f='refreshcomboboxuser.json')}}", function(result){
html="";
html+="<label>Usuário</label><select id='link-userid' class='form-control' >";
$.each(result.data, function(i, item) {
html+="<option value="+ item.id +">"+ item.first_name + " " + item.last_name +"</option>";
})
html+="</select>";
$("#combobox-user").html(html); 
htmlg="";
htmlg+="<label>Grupo</label><select id='link-groupid' class='form-control' >";
$.each(result.group, function(j, itemg) {
htmlg+="<option value="+ itemg.id +">"+ itemg.role +"</option>";
})
htmlg+="</select>";
$("#combobox-group").html(htmlg); 
htmle="";
htmle+="<label>Empresa</label><select id='link-empid' class='form-control' >";
$.each(result.emp, function(j, iteme) {
htmle+="<option value="+ iteme.id +">"+ iteme.emp_cnpj + " - " + iteme.emp_fantasia +"</option>";
})
htmlg+="</select>";
$("#combobox-emp").html(htmle); 
})
};



Em segunda-feira, 17 de abril de 2017 17:20:45 UTC-3, Carlos Costa escreveu:
Sua ideia não funiona. Porque a view é renderizada somente uma vez, antes de devolver o resultado ao navegador.
De qualquer forma você tem que "refazer" o combo.
Existem várias formas de fazer isso.

Eu não entendi bem como está seu código e sua página, mas o ideal seria usar ajax de alguma forma.
Por exemplo, usando o componente LOAD para quando enviar pelo Submit do form, seja recarregado somente aquele pedaço da página, já com o valor atualizado.
Em 17 de abril de 2017 11:11, <felipe...@tksolucoes.com.br> escreveu:
Bom dia, estou com uma duvida! 

Tenho um componente accordion dentro da minha pagina e na parte de cima o cliente insere o usuario e no de baixo ele ja pode vincular o usuário a um centro de custo, porém para o combo box atualizar tenho que dar um F5 na pagina pois ele pega somente a ultima consulta, porque a consulta vem a controller.

Como eu faria somente para atualizar o combo box em tempo real ? 

Pensei em colocar a consulta na view, pois pela logica ao clicar ele vai carregar em tempo real, porém seria a melhor solução ? como poderia criar esse laço ?  

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-us...@googlegroups.com

Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Ovidio Marinho

unread,
Apr 24, 2017, 8:29:49 AM4/24/17
to web2py-us...@googlegroups.com
Isto esta na view ou no controller?






                   http://itjp.net.br
                     http://itjp.net.br
          Ovidio Marinho Falcao Neto
                 ovid...@gmail.com

                            Brasil
            


Para se desinscrever, envie email a: web2py-users-brazil+unsubscribe...@googlegroups.com

Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsubscribe...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com

felipe...@tksolucoes.com.br

unread,
Apr 24, 2017, 9:19:41 AM4/24/17
to web2py-users-brazil
esta na view

Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-us...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages