Ir ao conteúdo

Posts recomendados

Postado

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');
     
}

 

Postado

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>

 

  • Moderador
Postado

@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

 

 

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...