Ir para conteúdo

Arquivado

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

Gabriel Prata

ajaxForm retorna erro!

Recommended Posts

Ola, gostaria de que alguém pode-se me ajudar com um problema. estou com esse código de um formulário de upload de imagem com ajaxForm, porem ele envia a imagem, funciona tudo bem, faz a barra de carregamento e o arquivo php está funcionando, porem em vez dele retornar o "success" e executar, ele executa o "error", mesmo tudo funcionando bem, assim as mensagens do php por json, não são retornadas. como poderia resolver isso?

não exibe qualquer mensagem ou erro no console.

$(document).ready(function(){
    $('#btnEnviar').click(function(){
        $('#form_upload').ajaxForm({
            uploadProgress: function(event, position, total, percentComplete){
                $('progress').attr('value',percentComplete);
                $('#porcentagem').html(percentComplete+'%');
            },        
            success: function(data){
                $('progress').attr('value','100');
                $('#porcentagem').html('100%');                
                if(data.sucesso == true){
                    $('#resposta').html('<img src="'+ data.msg +'" />');
                }
                else{
                    $('#resposta').html(data.msg);
                }                
            },
            error: function(){
                $('#resposta').html('Erro ao enviar requisição!!!');
            },
            dataType: 'json',
            url: 'enviar_arquivo.php',
            resetForm: true
        }).submit();
    });
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim as mensagens do php por json, não são retornadas.

Se as mensagens do php por json não estão retornando, isso quer dizer que o erro está no php.

para ter certeza, abra no navegador a ferramenta de desenvolvedor (geralmente f12) e na guia rede ou network, verifique qual o "response" do ajax. Se realmente não traz mensagem do json, o problema está no PHP, se trouxer a mensagem, poste aqui para analisarmos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso que gostaria de verificar?

mas o fato das mensagens do php por json não tarem retornando não seria pelo fato do ajaxForm tar retornando a função error? e não a success? por que na success é onde retornaria as mensagens, certo?

TID4aDj.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado, esse foi o meu primeiro post, estou a 1 dia todo tentando resolver, e realmente era o php, muito obrigado, mesmo eu ter resolvido o problema sozinho, você me ajudou com a dica tanto do php quanto ver na ferramenta do navegador, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por RafaelScharf
      Olá, sou inciante em desenvolvimento e estou trabalhando em um sistema de ponto de venda.
       
      Quando faço a busca para vincular o cliente na venda ele da erro na requisição Ajax.
       
      Quando faço a busca retorna o seguinte erro no console:
      GET http://localhost/aroeira/distribuidora/emporium/customers/suggestions?term=R&limit=10&_=1569833733307 404 (Not Found) [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/. Veja o código da view/default/pos/add.php
      <?php if ($this->input->get('customer')) {?> if (!localStorage.getItem('positems')) { localStorage.setItem('poscustomer', <?=$this->input->get('customer');?>); } else if (!localStorage.getItem('poscustomer')) { localStorage.setItem('poscustomer', <?=$customer->id;?>); } <?php } else {?> if (!localStorage.getItem('poscustomer')) { localStorage.setItem('poscustomer', <?=$customer->id;?>); } <?php } ?> if (!localStorage.getItem('postax2')) { localStorage.setItem('postax2', <?=$Settings->default_tax_rate2;?>); } $('.select').select2({minimumResultsForSearch: 7}); var cutomers = [{ id: <?=$customer->id;?>, text: '<?=$customer->company == '-' ? $customer->name : $customer->company;?>' }]; $('#poscustomer').val(localStorage.getItem('poscustomer')).select2({ minimumInputLength: 1, data: [], initSelection: function (element, callback) { $.ajax({ type: "get", async: false, url: "<?=site_url('customers/getCustomer')?>/" + $(element).val(), dataType: "json", success: function (data) { callback(data[0]); } }); }, ajax: { url: site.base_url + "customers/suggestions", dataType: 'json', quietMillis: 15, data: function (term, page) { return { term: term, limit: 10 }; }, results: function (data, page) { if (data.results != null) { return {results: data.results}; } else { return {results: [{id: '', text: 'No Match Found'}]}; } } } }); if (KB) { display_keyboards(); var result = false, sct = ''; $('#poscustomer').on('select2-opening', function () { sct = ''; $('.select2-input').addClass('kb-text'); display_keyboards(); $('.select2-input').bind('change.keyboard', function (e, keyboard, el) { if (el && el.value != '' && el.value.length > 0 && sct != el.value) { sct = el.value; } if(!el && sct.length > 0) { $('.select2-input').addClass('select2-active'); $.ajax({ type: "get", async: false, url: "<?=site_url('customers/suggestions')?>/" + sct, dataType: "json", success: function (res) { if (res.results != null) { $('#poscustomer').select2({data: res}).select2('open'); $('.select2-input').removeClass('select2-active'); } else { bootbox.alert('no_match_found'); $('#poscustomer').select2('close'); $('#test').click(); } } }); } }); }); $('#poscustomer').on('select2-close', function () { $('.select2-input').removeClass('kb-text'); $('#test').click(); $('select, .select').select2('destroy'); $('select, .select').select2({minimumResultsForSearch: 7}); }); $(document).bind('click', '#test', function () { var kb = $('#test').keyboard().getkeyboard(); kb.close(); //kb.destroy(); $('#add-item').focus(); }); } Veja o código do controller Costumer/suggestion
      function suggestions($term = NULL, $limit = NULL) { // $this->sma->checkPermissions('index'); if ($this->input->get('term')) { $term = $this->input->get('term', TRUE); } if (strlen($term) < 1) { return FALSE; } $limit = $this->input->get('limit', TRUE); $rows['results'] = $this->companies_model->getCustomerSuggestions($term, $limit); return $this->sma->send_json($rows); } veja agora a model company_model.php
      public function getCustomerSuggestions($term, $limit = 10) { $this->db->select("id, (CASE WHEN company = '-' THEN name ELSE CONCAT(company, ' (', name, ')') END) as text", FALSE); $this->db->where(" (id LIKE '%" . $term . "%' OR name LIKE '%" . $term . "%' OR company LIKE '%" . $term . "%' OR email LIKE '%" . $term . "%' OR phone LIKE '%" . $term . "%') "); $q = $this->db->get_where('companies', array('group_name' => 'customer'), $limit); if ($q->num_rows() > 0) { foreach (($q->result()) as $row) { $data[] = $row; } return $data; } } Ja tentei alterar o async: false para async: true e não funcionou. 
×

Informação importante

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