Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

luizinhorick

Erro ao cadastrar form via ajax

Recommended Posts

Eae pessoal!

Estou com um problema na hora de cadastrar um form via ajax, os campos com o type text envia normalmente, o problema está no campo FILE. 

Aparece Undefined index: user_perfil, é como se alguma coisa removesse o campo FILE da ARRAY.

 

Preciso de ajuda urgente!

 

AJAX.JS

$(function(){  
    $('.ajax_form_perfil').submit(function(){
        var form = $(this);
        var dataPerfil = $(this).serialize();
        
        form.ajaxSubmit({
            url: '_jsc/ajax/sistemas.php',
            data: dataPerfil,
            type: 'POST',
            dataType: 'json',
            beforeSend: function(){
                $('.mask').fadeIn(500);
                $('.msg').fadeOut(500, function(){
                    $(this).remove();
                });
            },
            success: function(resposta){
                if(resposta.error){
                    $('.box_msg_conta').html('<div class="msg error"><div class="icon_error"></div><span>'+ resposta.error +'</span></div>');
                    $('.error').fadeIn(500);
                }else{
                    
                    $('.box_msg_conta').html('<div class="msg sucesso"><div class="icon_sucesso"></div><span>'+ resposta.sucesso +'</span></div>');
                    $('.sucesso').fadeIn(500);
                }
                $('.mask').fadeOut(500);
            }
        });
        
        return false;
    });
});

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! seja bem vindo ao fórum!

 

Seu problema nada tem haver com PHP, dê uma lida neste tópico:

Com relação ao seu problema, utilize o plugin jquery Form. Com ele você conseguirá passar o campo FILE. Na verdade não da pra enviar arquivos com JavaScript, ele não enviará o seu campo file.

 

Leia este tópico para entender melhor:

Tópico movido para JavaScript.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao invés de usar:

var form = $(this);        

var dataPerfil = $(this).serialize();

 

Tente utilizar:

var form = $(this);

var dataPerfil = new FormData($(form)[0]);

 

Eu lí, faz tempo, que o serialize() não trabalha bem com input do tipo file 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por belann
      Olá!
       
      Não estou conseguindo criar um projeto laravel está dando o seguinte erro: 
      In Factory.php line 654:
        The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl ex
        tension, you can disable this error, at your own risk, by setting the 'disable-tls' option to true.
       
      Já baixei a versão openssl 3.3.1 e instalei no diretório ext do php, mas não sei se tem que configurar alguma coisa no php.ini.
       
    • Por violin101
      Caros amigos,  saudações. 
       
      Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. 
       
      Minha dúvida:
      - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA.
      Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal  ?
       
      Grato, 
       
      Cesar
    • Por violin101
      Caros amigos,  saudações. 
       
      Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. 
       
      Minha dúvida:
      - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA.
      Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal  ?
       
      Grato, 
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma pequena dúvida.
       
      Estou escrevendo um Sistema que tem vários Módulos.
       
      O módulo principal tem:
      Estoque | Compras | Expedição | Vendas

      Minha dúvida:
      como faço após Acessar o Módulo Principal e Escolher o Módulo que quero trabalhar,
      eu possa fechar o Módulo aberto por exemplo: Estoque, sem alterar o Módulo principal e outros se estiver aberto ?


      Grato,
       
      Cesar
    • Por douglas79
      Bom dia,

      Há alguns dias que venho instalar o apache, o php, mysql e o phpmyadmin manualmente e sem obter sucesso. Até consegui rodar o php, porém, quando vou baixar a úitima versão do MYSQL, não tem todos os pacotes nele instalados, inclusive no completo, só encontro o Router.
      Alguém pode me dizer o porquê que isso está ocorrendo?
      Desde já agradeço a ajuda de vocês, que será bem vinda!
      No aguardo!

      Uso a versão 8.3.9 do PHP
      Meu SO é o Windows 10 32 bits
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.