Jump to content
Fórum Script Brasil
  • 0

Como guardar e recuperar vários retornos de uma requisição AJAX


Question

Senhores, boa noite. Estou tentando realizar a seguinte tarefa, estou enviando via AJAX a uma outra página 3 cep's, ao chegar lá eu dou apenas um echo do cep enviado pra saber que chegou, esse echo entra na verificação de sucesso aonde eu testo a validade, ou seja, diferente de vazio e entra a próxima ação. Quando dou apenas um alert(data) ele mostra os ceps um de cada vez conforme loop, porém se eu digo pra realizar um incremento a cada vez e já fora do loop eu dou um alert de n então o alert resulta em 0 (zero).

Me desculpem a ignorância caso a pergunta seja boba ou eu que esteja cometendo algum erro trivial.

 

O intuito desse teste é que a ideia é chegar na seguinte solução, um db que contem dados precisa receber dados do csv desde que esses dados já não existam no banco, logo pensei na seguinte solução, a a pagina um carrega o csv, chama o ajax, o ajax chama a pagina php responsável pela verificação e insert e sempre que esta retornar 1 (um) o ajax faz um incremento, por que isso, pra poder informar ao usuário que de X registros importados N foram inseridos.

 

function testeAjax() {

    var cep = ['cep 01', 'cep 02','cep 03'];
    var n = 0;
    for(var c=0 ; c < cep.length ; c++){

        jQuery.ajax({
            type: "POST",
            url: "./_inc/controler/uploadArquivosControle.php",
            data: { acao:'insertUpdate', cep: cep[c] },
            success: function( data ){

                if(data!==''){
                    n++;
                }

            }

        });

    }
    alert(n);
}

 

<?php
    $acao = $_REQUEST['acao'];

	$dao = new UploadArquivosDAO();
    
    switch ($acao) :
        case 'insertUpdate':
            
            $cep      = addslashes($_POST['cep']);
            echo $cep;
        break;
    endswitch;

 

Desde já muito obrigado a quem puder me ajudar, 

Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

O AJAX funciona como se fosse um navegador "escondido", então ele faz 1 requisição e recebe 1 resposta.

Logo esse loop que você imagina não funciona, porque para cada interação no loop deveria existir uma requisição diferente, e não vale a pena esse vai e volta todo.

Para simplificar faz o PHP verificar e inserir TODOS  os dados no banco, o PHP conta quantos foram inseridos corretamente e responde esse número para o Javascript que só exibe o número na tela.

Link to post
Share on other sites
  • 0

Oi Leonardo Persan, muito obrigado pelo retornoentendi mais ou menos sua resposta. Se o loop não funciona então porque quando uso o alert(data) no lugar do "n++" ele dá 3 alertas com os respectivos ceps enviados? Qaunto a sugestão do uso do php eu já tinha pensado nisso, o problema que o intuito dessa função é que eu queria mostrar uma barra de progresso, aonde nela mostraria a evolução percentual de registros verificados / volume total enviado.

Sem querer abusar, mas você poderia me dar uma luz sobre como resolver isso?

Desde já muito obrigado
 

44 minutos atrás, Leonardo Persan disse:

O AJAX funciona como se fosse um navegador "escondido", então ele faz 1 requisição e recebe 1 resposta.

Logo esse loop que você imagina não funciona, porque para cada interação no loop deveria existir uma requisição diferente, e não vale a pena esse vai e volta todo.

Para simplificar faz o PHP verificar e inserir TODOS  os dados no banco, o PHP conta quantos foram inseridos corretamente e responde esse número para o Javascript que só exibe o número na tela.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148692
    • Total Posts
      644524
×
×
  • Create New...