Ir para conteúdo

Arquivado

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

marcelocardoso

receber valor no ajax, success de ASP

Recommended Posts

Pessoal
Como posso receber 2 variaveis de arquivo ASP, dentro do SUCCESS do AJAX ?
 

url: 'marketing.asp',
success: function(response) {
$("#porc").html("<div id='porc'>'"+ response.statusdoenvio +"' completado!</div>");
$("#mail").html("<div id='mail'>'"+ response.campo_email +"'</div>");
},

Seria os dois campos acima, STATUSDOENVIO e CAMPO_EMAIL
1) ao ler o arquivo marketing faz o que tem lá, e tipo, receber dentro do success, tentei do jeito que fiz acima, porém não vai, vem como UNDEFINED.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

alguém para dar help? expert em JQUERY???

preciso receber do ARQUIVO que uso na URL do AJAX, pegar, GET, receber, 2 variaveis de lá, e jogar no SUCCESS do AJAX.

tipo: no arquivo ASP, pegar 2 variaveis, e postar no SUCCESS, id=PORC e id=mail.

procurei na net, mas nada de sucesso, alguém....

Compartilhar este post


Link para o post
Compartilhar em outros sites

o seu asp tem que retornar um JSON.

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal, como fazer isso, assim:
 

SET strVar = new Person
strVar.status    = StatusDoEnvio
strVar.email     = strMKT("vmares_email")
strVar.JSONArray = array(2)

Response.Write toJSON("strVar", strVar, false) %>.strVar.JSONArray[0]);

Mais ou menos isso, 
e o responde write, como fica, preciso passar aquelas duas variaveis setadas acima...

e depois no AJAX, como recebo...???

Compartilhar este post


Link para o post
Compartilhar em outros sites

usei assim no ASP:
 

PreparaJSON = "{ ""json_emails"": """ & strMKT("email") & """, ""json_status"": """ & StatusDoEnvio & """ }"
Response.Write PreparaJSON

Consegui pegar e preparar o ARRAY no ASP para postar com JSON.
Agora, se der certo, consigo o RESTO.
Caso contrário, volto e solicite HELP.
Valeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui chegar até aqui...
Após vasculhar a NET, consegui andar no ASP, porém no JQUERY, AJAX com JSON, não...

CODIGO AJAX:

<script type="text/javascript">
  $(function() {
    $.ajax({
      type: 'post',
      url: 'arquivo.asp',
      dataType: "json",
      contentType: "application/json",

      beforeSend: function(response) {
        $("#barra_porc1").attr("style", "width:" + response.json_status +"");
        $("#barra_porc2").html("<div id='barra_porc2'>"+ response.json_status +" completado!</div>");
        $("#barra_mail").html("<div id='barra_mail'>'"+ response.json_emails +"'</div>"); 
      },

    });
    return false;
  });
</script>


CODIGO ASP:
 

SET PreparaJSON = jsObject()
    PreparaJSON("json_status") = StatusDoEnvio
    PreparaJSON("json_emails") = strMKT("email")
    PreparaJSON.Flush


Só não consigo no JQUERY acima, buscar estes dados do JSON, como posso fazer corretamente???
Agradeço HELP, não tenho muito conhecimento de JSON, primeira vez q utilizo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

WOOTZOR

fiz assim, mas vem como UNDEFINED
 

alert(console.log(response));

MEU ASP ESTÁ ASSIM:
 

SET PreparaJSON = jsObject()
PreparaJSON("json_status") = StatusDoEnvio
PreparaJSON("json_emails") = strMKT("email")
PreparaJSON.Flush

Dando response.write no proprio arquivo ASP, o response com o jsObject acima, mostra os dados certinho..
mas quando uso pelo AJAX, ele dá a mensagem do CONSOLE, sem sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites
pt_br.min.js:11 Uncaught TypeError: Cannot read property 'langs' of undefined
    at pt_br.min.js:11
(anonymous) @ pt_br.min.js:11
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/roboto/v18/ek4gzZ-GeXAPcSbHtCeQI_esZW2xOQ-xsNqO47m55DA.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/roboto/v18/mErvLBYg_cXG3rLvUsKT_fesZW2xOQ-xsNqO47m55DA.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/roboto/v18/-2n2p-_Y08sg57CNWQfKNvesZW2xOQ-xsNqO47m55DA.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/roboto/v18/u0TOpm082MNkS5K0Q4rhqvesZW2xOQ-xsNqO47m55DA.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/roboto/v18/NdF9MtnOpLzo-noMoG0miPesZW2xOQ-xsNqO47m55DA.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/roboto/v18/Fcx7Wwv8OzT71A3E1XOAjvesZW2xOQ-xsNqO47m55DA.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/roboto/v18/CWB0XYA8bzo0kSThX0UTuA.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/opensans/v15/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/opensans/v15/RjgO7rYTmqiVp7vzi-Q5URJtnKITppOI_IvcXXDNrsc.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/opensans/v15/LWCjsQkB6EMdfHrEVqA1KRJtnKITppOI_IvcXXDNrsc.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/opensans/v15/xozscpT2726on7jbcb_pAhJtnKITppOI_IvcXXDNrsc.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/opensans/v15/59ZRklaO5bWGqF5A9baEERJtnKITppOI_IvcXXDNrsc.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/opensans/v15/u-WUoqrET9fUeobQW7jkRRJtnKITppOI_IvcXXDNrsc.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/opensans/v15/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.woff?v=4.7.0
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.ttf?v=4.7.0
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://fonts.gstatic.com/s/materialicons/v30/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.woff2
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.woff
admin.asp?menu=marketing:1 Slow network is detected. Fallback font will be used while loading: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.ttf
admin.asp?menu=marketing:212 {readyState: 0, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}

erros q recebo, mas nada que creio eu, que possa estar relacionado com o meu problema do AJAX com JSON recebido de ASP

Compartilhar este post


Link para o post
Compartilhar em outros sites

alguem tem algum exemplo de como fazer isso com ASP e AJAX, receber valor de arquivo lido na URL do AJAX em formato ASP, e depois pegar o response.write "" no AJAX e exibir como variavel no JQUERY AJAX???

não estou conseguindo finalizar o código... por cauxa disso.
obrigado,

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, marcelocardoso disse:

alguem tem algum exemplo de como fazer isso com ASP e AJAX

https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax#guia-definitivo-ajax

 


O Exemplo acima é apenas comunicação HTTP cujo a resposta seria um JSON.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Darezzo e demais amigos...

Peguei uma parte do código postado:
 

DENTRO DO BEFORE DO AJAX
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  $.getJSON('arquivo.asp', function(response){
  	try{
  		$("#status").val(response.status);
  		$("#email").val(response.email);
  }
	catch(ex) {}
  });
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DENTRO DO BEFORE DO AJAX

Pessoal, este arquivo.asp é um do while que busca no banco de dados emails e envia, depois no final GOSTARIA de pegar o STATUS de % dos emails que estão sendo enviados e também o email que está sendo submetido.

Pergunto:
Se no ajax fizer isso, e depois no GETJSON, dentro do BEFORE, ele não vai carregar novamente o arquivo.asp e reenviar novamente os emails???

Acho que vai fazer isso, nem testei....

1) meu arquivo ASP, busco os emails, envia...
2) depois teria que passar os dados novamente para o ajustes, que no caso criei um JSON no ASP, para resgatar depois duas variaveis...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais uma explicação:

 

AJAX OU JSON: aqui estou tendo erros, não consigo receber os valores json
página index.asp

<script type="text/javascript">
  $(function() {
    $.ajax({
      type: 'post',
      url: 'mkt.asp',
      dataType: "json",
      contentType: "application/json",

      beforeSend: function(response) {

        $("#barra_porc1").attr("style", "width:'" + data.json_status +"'");
        $("#barra_porc2").html("<div id='barra_porc2'>'"+ data.json_status +"' completado!</div>");
        $("#barra_mail").html("<div id='barra_mail'>'"+ data.json_emails +"'</div>");
      },

      success: function(response) {
        $("#barra_porc1").removeClass("progress-bar progress-bar-danger").addClass("progress-bar progress-bar-success");
      },

      error: function(response) {
        $("#barra_erro").fadeIn(500).delay(2000).fadeOut(500);
      },

    });
    return false;
  });
</script>


ASP: mkt.asp CODIGO QUE UTILIZO PARA ENVIAR OS EMAILS....
 

    <!--#include file="json/json_util.asp"-->
    <!--#include file="json/json.asp"-->
    <!--#include file="../inc/conexao.asp"-->

<%
    Response.Buffer    = TRUE
    RegistrosPorPagina = 1

    IF Request.QueryString("PaginaAtual") = "" OR Request.QueryString("PaginaAtual") = "0" THEN
        PaginaAtual = 1
               ELSE
        PaginaAtual = Request.QueryString("PaginaAtual")
    END IF

           SQL = "SELECT email FROM contatos ORDER BY email ASC"
    SET strMKT = Server.CreateObject("ADODB.RECORDSET")
        strMKT.CursorLocation = 3
        strMKT.CursorType     = 2
        strMKT.LockType       = 1
        strMKT.CacheSize      = RegistrosPorPagina
        strMKT.Open SQL, conexao
        strMKT.PageSize       = RegistrosPorPagina
    STATUS = "" 
   
   
    IF NOT strMKT.EOF THEN
           strMKT.AbsolutePage = PaginaAtual
                  TotalPaginas = strMKT.PageCount
                 StatusDoEnvio = StatusDoEnvio & Fix((PaginaAtual*100)/TotalPaginas) & "%"

       FOR CONT = 1 TO strMKT.PageSize
		
   		>>>>MONTO AQUI A MENSAGEM A SER ENVIADA PELO CDOSYS

        strMKT.MoveNext
     IF strMKT.EOF THEN EXIT FOR

     NEXT 

        IF INT(PaginaAtual) < Int(TotalPaginas) THEN
%> 
<%
   			>>>> CRIO O JSON DOS DADOS QUE PRECISO PASSAR PARA O AJAX (STATUS E EMAIL)
            SET PreparaJSON = jsObject()
                PreparaJSON("json_status") = StatusDoEnvio
                PreparaJSON("json_emails") = strMKT("vmares_email")
                PreparaJSON.Flush
    
  			>>>>> VOU ATUALIZANDO A PÁGINA ATÉ ENVIAR TODOS OS EMAILS
            Response.Write "<script type=""text/javascript"">function atualiza() { document.location.href = ""?PaginaAtual=" & PaginaAtual + 1 &""" } setTimeout(""atualiza()"", 10000);</script>"
    
        ELSE
        END IF
           
     END IF
    
        strMKT.close
    SET strMKT = nothing
    
       conexao.close
   SET conexao = nothing
%>


1) o arquivo INDEX.ASP pega pelo AJAX o arquivo MKT.ASP e envia os emails, depois pelo JSON - OBJETO, deveria retornar pela função GETJSON, mas não consigo ter sucesso.

Este é o exemplo que estrou trabalhando.
Só preciso deixar funcionando o JSON, no qual fiz assim, mas nada....

 

$.getJSON("mkt.asp", function(result){
$.each(result, function(i, field){
alert(field + " ");
});
});

contribuições de dicas em GETSON, agradeço...
obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguns questionamentos ao ler sua explicação:

 

- Quanto tempo demora esse disparo de E-mail?

- Caso seja um tempo consideravel você precisa pensar em maneiras de não 'travar' o usuário e rodar isso de forma independente...

 

 

Ex:

Atualmente tenho uma plataforma de E-mail marketing disparando uma media de 10k/mês, eu simplesmente dou um 'start' no job/fila e retorno para o cliente:

 "Disparando E-mails".

 

Por trás dos panos rola um insert numa tabela:

tabela:

emails_para_enviar 
email, tp_status DEFAULT 0

 

Ex:

('teste1@gmai.com', 0);

('teste2@gmai.com', 0);

('teste3@gmai.com', 0);

 

E fica rodando um cron de 5 em 5 Mins no sistema chamando a url que tem +/- uma query assim:

 

SELECT * FROM emails_para_enviar WHERE tp_status = 0 limit 25

 

Update nos E-mails dependendo da resposta ...

 

 

E se o usuario quiser consultar q qnt (%) de e-mails enviado é só chamar a url:

SELECT count(*) as 'qtd_enviado' FROM emails_para_enviar WHERE tp_status = 1

 

Acho q deu pra pegar neh?

 

 

Ps:

Tem algumas API's q abstraem lindamente o exemplo acima:

 

https://www.mailgun.com/

https://aws.amazon.com/pt/ses/

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora tente separar mais o problema do 'back' do problema do 'front',

Qual resposta você está recebendo HTTP?

é um 200?

 

No seu JS:

Deu um

console.log(response);

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

E chamar direto a url?

 

Funciona dessa forma?
(Se precisar deixa hard code no .asp)

 

Provável q o seu problema não tem relação com o JS 
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por clovis.sardinha
      Tenho uma consulta de autocomplete no bd que funciona no servidor local e não roda no servidor da web. 
      Ao enviar a consulta no servidor local  aparece no console :Fetch terminou o carregamento: GET ".../Cidade?cidade=sao%20paulo". A pesquisa é feita normalmente.
      Quando mando a mesma pesquisa para o servidor web(locaweb) aparece no console: Fetch terminou o carregamento: GET "..../Cidade?cidade=sao%2520paul".
      O número 25 aparece só no servidor web. Pelo que pesquisei 25 significa %, ou seja, está duplicando o caractere %. 
      Não consegui utilizar nenhuma função para evitar que isto ocorra. Alguém sabe se há alguma configuração no servidor web que possa ser alterada para evitar essa duplicação?
       
    • Por ment0r
      Boa noite pessoal, tudo bem?
       
      Estou desenvolvendo um sistema simples com exibição de formulário via modal. Uma vez cadastrado o serviço (tabela possui apenas dois campos, id e nome), eles são exibidos numa tabela com um ícone que permite a alteração do nome.

       
      Eu clico no ícone e é chamado um modal que é gerado via ajax (pois são vários registros).
       

       
      Nesse modal é mostrado o serviço e uma vez alterado, o botão Salvar chama uma função que atualiza a tabela servico, concluindo a tarefa. Fiz o mesmo processo pra cadastrar o serviço, com a diferença de que o modal está presente na mesma página, ou seja, não é chamado via ajax.
       
      Eis os códigos:
      <a href="#" onclick="modalUpdate(<?= trim($array['id']) ?>)"> <i class='bx bx-edit'></i> </a> // Trecho onde eu chamo a função modalUpdate. Função btAltServico click:
      $('#btAltServico').click(function() { var inpnome = $('#nome'); var inpid = $('#id'); if (inpnome.val() == '') { swal("Atenção", "Por favor, preencha os campos obrigatórios", "warning"); if (inpnome.val() == '') { inpnome.css("border","2px solid #f94545"); } else { inpnome.css("border",""); } alert(inpnome); alert(inpid); } else { $.ajax({ url: '../inc/ajax/altServico.php', type: 'post', dataType: 'json', // pode ser html data: { nome : inpnome.val(), id : inpid.val() }, success: function(resposta){ if (resposta == 1) { inpnome.val(""); inpnome.css("border",""); swal("Sucesso", "Serviço alterado", "success"); } else { if (resposta == 0) { swal("Erro", "Serviço não alterado. Log de erro gerado.", "error"); } else { swal("Atenção", "Serviço já cadastrado", "warning"); } } } }) } });  
      E modalUpdate.php :
       
      <?php /* * altServico.php * * Script responsável pelo update de serviços na tabela servico * * Função chamada pelo arquivo ajax.js */ //if ($_POST) { require'../conn.php'; require'../../class/class.geral.php'; $geral = new Geral(); $nome = $_POST['nome']; $id = $_POST['nome']; $ativo = 1; // Verifica se o servico já foi cadastrado $sqlVer = "select nome from algo68_db_cliente.servico where nome = '".$nome."' and id <> ".$id.""; $queryVer = mysqli_query($conn, $sqlVer); $resultVer = mysqli_num_rows($queryVer); if ($resultVer > 0) { echo json_encode(2); // servico já cadastrado } else { // Update do servico $sql = "update algo68_db_cliente.servico set nome = '".$nome."', ativo = ".$ativo." where id = ".$id; $query = mysqli_query($conn, $sql); $result = mysqli_affected_rows($conn); if ($result > 0) { echo json_encode(1); // alterou o servico } else { $geral->logErro(date('d/m/Y|H:i:s'), @$_SERVER[REQUEST_URI], 'AlterarServico', mysqli_error($conn)); echo json_encode(0); // não alterou o servico } } //} ?> O problema é que quando clico no botão Salvar, não acontece nada - se eu colocar um alert qualquer na função click, só pra saber se está chegando, também não da nada. E está da mesma forma que o cadastro de serviço, que funciona perfeitamente.

      Bom, é isso pessoal, tentei ser o mais breve e especifico possível. Qualquer ajuda é bem vinda, obrigado a todos, desde já.
    • Por Danilo - Jesus voltará!
      Olá pessoal, tenho uma div a qual através de um select categorias eu trago dados de empresas do banco, aí preciso clicar nas listagens das empresas e pegar o ID quando clica no checkbox e gravar pelo ajax novamente na session feita no arquivo php tipo um carrinho de compras, que essa parte já tenho... só não to conseguindo pegar os ids gerados dinamicamente no retorno feito do ajax, eles aparecem com F12 ao inspecionar, mas não aceita eu clicar para pegar o ID, acho que é algo de DOM, mas não to sabendo fazer... alguém aí saberia me ajudar como pegar esses ids ao clicar, já que eles vem dinamicamente?
       
      obrigado
    • Por joao b silva
      <input type="text" class="form-control" id="produto" name="produto"  onblur="BuscaPr()">
       
       
      Ola. eu chamo a função JS a seguir  no onblur do input acima. cikiqyeu is alerts para confirmar a chamada da função. ta chamando. mas alem dos alerts nao acontece mais nada. segue a função JS e o arquivo php que é chamado no ajax:
       
       
      FUNSAO JS
       
          function BuscaPr(){
              var buscaTexto = document.getElementById('produto').value
              alert(buscaTexto) 
              alert(buscaTexto.length) 
              $.ajax({
                  method: 'post',
                  url: 'sistema/produto/buscapr.php',
                  data: {busca: 'sim', texto: buscaTexto},
                  dataType: 'json',
                  success: function(retorno){
                          if(retorno.qtd == 0){
                              alert('q = 0')
                                  $('#resbuscapro').html('<p>Não encontramos resultados para sua busca</p>');
                          }else{
                              alert('q + 0')
                                  $('#resbuscapro').html(retorno.dados);
                          }
                  }
              });
          }

      O ARQUIVO PHP:
       
      <?php
      if (!session_id()):
          session_start();
      endif;
      require_once('_app/Config.inc.php');
      require_once('./Lib.php');
      if (isset($_POST['busca']) && $_POST['busca'] == 'sim'):
          $textoBusca = strip_tags($_POST['texto']);
          $retorno = array();
          $Par = "EM={$_SESSION['userlogin']['emCODIGO']}";
          $Fil = " where emCODIGO = :EM and prDESCRICAO like '%{$textoBusca}%' ";
          $Produto = new Read;
          $Produto->FullRead("select * from produto {$Fil}", $Par);
          if ($Produto->getResult()):
              $retorno['qtd'] = $Produto->getRowCount();
              foreach ($Produto->getResult() as $pro):
                  extract($pro);
                  $retorno['dados'] .= '<a href="#" id='.$prCODIGO.':'.$prVENDA.'">'. utf8_encode($prDESCRICAO).'</a>';
              endforeach;
          endif;
          echo json_encode($retorno);
      endif;
      ?>
    • Por cesarhtc
      Boa tarde tenho uma aplicação que gera uma relação de dados como faço para exportar isso para pdf?
       
      Obrigado
×

Informação importante

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