Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

Utilização da função fwModalBox

29 de Maio de 2012, 13:37 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 16 vezes

Como eu faço para retornar valores para o formulário pai de onde eu executei a função fwModalBox.

 []s 

Eduardo Cajueiro 

Autor: Eduardo Cajueiro


1515 comentários

  • Ddd6c79892cc1e7e4fa622318d879118?only path=false&size=50&d=404Diego Barreto(usuário não autenticado)
    30 de Maio de 2012, 17:23

     

    Olá Eduardo,

     

    Eu utilizo dessa forma no callback de um ajax, acredito que funcione também no callback da modal.

    parent.parent.jQuery("iframe").contents().find('#nome_campo').val(valor);

    • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
      30 de Maio de 2012, 22:37

       

      Olá Eduardo,

      fiz algumas mudanças nos parâmetros de callback da modal_window para facilitar nossa vida. Agora a função definida para callback recebe a lista de campos ( array) do formulário da modal window e também a instância do objeto document caso precise pegar mais alguma coisa da janela modal.

      Atualizei tambem o exemplo que está no diretório base/exemplos/exe_TForm2.php, para exemplificar melhor isso. Veja que quando chamo a função "fwModalBaox(...)", eu passo a função "mycallback" e quando eu fecho a modal, a função recebe de volta os parametros fields e doc.

      Acredito que isso vai resolver o seu problema.

      Não esqueça de baixar a última versão do FormDin e limpar o cache do browser (ctrl+shift+del) .

      Abraço.

      • Ddd6c79892cc1e7e4fa622318d879118?only path=false&size=50&d=404Diego Barreto(usuário não autenticado)
        31 de Maio de 2012, 11:37

         

        Boa!!!

        Grato pela atualização, iŕa me ajudar muito aqui também!

        Vou retirar minhas gambiarras!rs

        • 46341e312d924239404ac442f5c43ed3?only path=false&size=50&d=404Eduardo Cajueiro(usuário não autenticado)
          11 de Junho de 2012, 14:59

           

          Boa tarde,

          No andamento do meu trabalho, percebi um outro problema que não estou conseguindo resolver na utilização do fwModalBox. Quando eu utilizo a função fwModalBox para abrir um formulário e nesse formulário eu utilizo o método setOnlineSearch, o formulário de pesquisa até abre e faz a pesquisa. Só que, quando eu clico no link para retornar os valores para o formulário anterior, os campos que indiquei não são preenchidos.

          Não sei se consegui explicar direito, mas a questão é que não consegui fazer funcionar o setOnlineSearch em um formulário aberto com fwModalBox.

          []s

          Eduardo 

          • 46341e312d924239404ac442f5c43ed3?only path=false&size=50&d=404Eduardo Cajueiro(usuário não autenticado)
            12 de Junho de 2012, 9:54

             

            Luis,

            Eu vi a sua atualização para resolver o problema que citei acima. Funcionou em parte, ele está apresentando uma mensagem "parentWin.fwGetObj is not function". Então resolvi dar uma olhada no código e fiz uma alteração na linha 47 do arquivo /base/js/onlineSearch.js:

            - Antes: parentWin.fwGetObj(strFocusField).focus();

            - Depois: parentWin.getContent().contentWindow.fwGetObj(strFocusField).focus(); 

            E o erro parou de ocorrer, espero ter ajudado.

            []s

            Eduardo Cajueiro 

            • 46341e312d924239404ac442f5c43ed3?only path=false&size=50&d=404Eduardo Cajueiro(usuário não autenticado)
              12 de Junho de 2012, 15:46

               

              Luis,

              Um outro problema que estou enfrentando com telas modal, tanto com o fwModalBox, quanto com o onlineSearch. É que na primeira fez que é chamada não bloqueia os menus, mas na segunda funciona normalmente.

              Você já viu algo parecido?

              []s

              Eduardo Cajueiro 

            • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
              12 de Junho de 2012, 18:46

               

              Eduardo,

              ajudou sim, realmente estava errado, obrigado.

              Quanto ao problema da modal não bloquear o menu, é um mistério, também já detectei isso mas não consegui encontrar o porque que so funciona da segunda vez que é chamada, ainda estou quebrando a cabeça, se puder nos ajudar a descobrir, fique à vontade, a função é a function app_open_modal_window(jsonParams) e está no arquivo base/js/app.js.

              Abraço.

              • 46341e312d924239404ac442f5c43ed3?only path=false&size=50&d=404Eduardo Cajueiro(usuário não autenticado)
                12 de Junho de 2012, 18:57

                 

                Luis,

                Eu vou pesquisar por aqui também, se conseguir alguma coisa eu te aviso. Mas voltando ao problema do onlineSearch, até a atualização que você fez de manhã funcionou. Só que depois que atualizei agora a tarde parou de funcionar, não sei o que aconteceu. Você tem idéia?

                []s

                Eduardo Cajueiro 

                • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
                  12 de Junho de 2012, 21:55

                   

                  Eduardo,

                  publiquei agora a noite uma nova atualização, Atualize e faça o teste. Se o problema do onlinesearch continuar, limpe o cache do browser ( ctrl+shift+delete ) , pode ser isso, se ainda continuar, verifique se o exemplo tambem ocorre o mesmo problema. O exemplo está em: localhost/[sua aplicacao]/base/exemplos selecione a opção formulário->Subcadastro e quando abrir o formulário clique no botão Subcadastro que vai abrir um outro form que tem uma consulta online.

                  Abraço.

                  • 46341e312d924239404ac442f5c43ed3?only path=false&size=50&d=404Eduardo Cajueiro(usuário não autenticado)
                    13 de Junho de 2012, 9:42

                     

                    Luis,

                    Funcionou, e quanto ao mistério do problema da modal não bloquear o menu na primeira fez. Eu acho que descobri, no arquivo \base\js\prototype\windows.js na linha 1778 tem o seguinte comando: "objOverlay.style.zIndex = Windows.maxZIndex + 1;". E o problema é que na primeira vez a propriedade Windows.maxZIndex está com o valor zero. O que eu fiz coloquei o comando abaixo antes da linha 1778 e o problema aparentemente resolveu, teria como você testar para ver se resolveu?

                    Comando:

                          if (Windows.maxZIndex==0) {

                            Windows.maxZIndex = 1;

                          }

                    []s

                    Eduardo Cajueiro 

                    • 46341e312d924239404ac442f5c43ed3?only path=false&size=50&d=404Eduardo Cajueiro(usuário não autenticado)
                      13 de Junho de 2012, 13:57

                       

                      Testando aqui eu descobri um erro quando solicitava a tela de login, então resolvi alterar para o código abaixo:

                            if (Windows.maxZIndex==0) {

                              objOverlay.style.zIndex = 1;

                            } else {

                              objOverlay.style.zIndex = Windows.maxZIndex + 1;

                            }

                      Observe que no código anterior o comando "objOverlay.style.zIndex = Windows.maxZIndex + 1;" estava fora do if, e agora está no else. 

                      Esse resolveu o problema do fwModalBox e não deu problema com a tela de login.

                      []s

                      Eduardo Cajueiro 

                      • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
                        13 de Junho de 2012, 18:47

                         

                        Eduardo,

                        não encontrei este código, em que arquivo está ?

                        Abraço.

                        • 46341e312d924239404ac442f5c43ed3?only path=false&size=50&d=404Eduardo Cajueiro(usuário não autenticado)
                          13 de Junho de 2012, 22:24

                           

                          Luis,

                          Eu tinha feito uma alteração no arquivo \base\js\prototype\windows.js na linha 1778, citei na mensagem 11. E logo depois eu encontrei um erro e corrigi o erro na mensagem 12. Por isso que você não encontrou.

                          []s

                          Eduardo 

                          • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
                            14 de Junho de 2012, 21:00

                             

                            Eduardo,

                            a solução que encontrei para o problema, baseado na sua dica, foi colcar comando que incrementa antes do que define o z-index do estlo:
                                 Windows.maxZIndex++;

                                  objOverlay.style.zIndex = Windows.maxZIndex+1;

                            assim funcionou

                            Abraço.

                             

Essa comunidade não possui posts nesse blog