Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
MrDiniz

Javascript Form dinâmico envia dados para popup

Recommended Posts

Olá pessoal tudo bom?

 

Estou precisando montar um form dinâmico, ou seja, valores do action como variável e mandar os dados de sessão (session) para um popup com POST, sem submeter a tela principal.

 

achei um modelo de ajax mas não entendo muito e não sei como passar parâmetros para ele (ainda). Se alguém puder me ajudar agradeço:

 

$('#formPopUp').submit(function(event){
        event.preventDefault();
        var $form = $(this);
        $.ajax({
            type: 'POST',
            url: $form.attr('action'),
            data: $form.serialize(),
            success: function(data) {
                var $elm = $('<div/>').attr('id','formResult');
                $elm.html(data);
                $.magnificPopup({
                    items: {
                        src: $elm.html(),
                        type: 'inline'
                    }
                });
            },
            error: function(error) {
                // Do something with the error
            }
        });
    });

Esse form é só de teste para ver se manda valores, porque a página do action, queria passar os valores do link <a>:

 

<form id="formPopUp">
  <input name="input1" value="campo1" />
  <select name="input2">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
  <textarea name="input3">textarea</textarea>

  
  <a href="www.algo" id="link" onclick="criarPopup();">Link</a>
</form>

 O JS que estava tentando montar:

function criarPopup(){
var newAction = document.getElementById("link").getAttribute("href"); 
document.getElementById("formPopUp").action = newAction; 
var obj = document.getElementById("formPopUp");
 var dados = new FormData(obj);
 
 newWindow = window.open(newAction,'PopUp','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=yes, width=650, height=380');
     
}

 

Editado por MrDiniz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz o código abaixo e funcionou… Só queria saber o porque que se eu tirar o target =“0” ele não abre popup.

function abrePaginaPost() { prog = document.getElementById("link").value; //monta link + parametros prog = prog + '?tipousuario='+document.getElementById("tipousuario").value+ '&status='+document.getElementById("status").value+ '&codusuario='+document.getElementById("codusuario").value; //fim var form = document.getElementById('formPopUp'); form.action = prog; prop="left=0,top=0,toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=yes,resizable=1,width=780,height=540"; janela=window.open("","0",prop).focus(); form.target = "0"; form.submit(); } </script>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@MrDiniz  O seu exemplo inicial com  JQuery,  os dados do formulário começam aqui:

 

var $form = $(this);

A variável $form recebe o seletor This.  Pois refere-se a ele mesmo.

 

Agora a variável que realmente engloba todos os dados do seu formulário é:  

$form.serialize()

Onde o serialize() faz com que você envie os dados de forma serializada ao php.

 

Exemplo de como mandaria para o php: input1=texto_campo1&input2=1&input3=algumtexto

 

Agora o que tem de errado com o primeiro código?

O URL do ajax está errado, 

Foi colocado tudo no submit,   prefira usar a função on() 

 

Estes dois tópicos podem ajudar você a entender melhor o ajax

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×