Jump to content
gust.php

Zend2 enviando dados por ajax

Recommended Posts

Galera, boa noite.

Estou tentando enviar os campos e não consigo.

Já conferi e as variáveis estão preenchidas, no caso os atributos values.

Quando clico no link, ele abre uma nova página mas não chama a função, não recebo nenhum dado no meu controller.

 

 

<div class="col-md-12">
<input type="text" name="datai" id="datai" hidden value="<?= $this->inicio; ?>">
<input type="text" name="dataf" id="dataf" hidden value="<?= $this->fim; ?>">
<input type="text" name="file" id="file" hidden value="<?= $this->file; ?>">
<a href="#" class="btn btn-mini btn-success pull-right" target="_blank" id="printPeriodo"><span i class="fa fa-print"></span></a>
</div>

 

<script type="text/javascript">
$(function () {
$("#printPeriodo").on('click', function () {
  $.post('<?php echo $this->url('servico', array('action' => 'printMap')); ?>',
    {
       datai: $("input[name=datai]").val(),
       dataf: $("input[name=dataf]").val(),
       file: $("input[name=file]").val()
     }
   );

 });
});
</script>

Share this post


Link to post
Share on other sites
Citar

Quando clico no link, ele abre uma nova página mas não chama a função, não recebo nenhum dado no meu controller.

Ocorre algum erro no console do browser?

Verificou o Preview/Response/Reader?

Caso não saiba aqui tem um passo a passo:

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

 

 

Outra duvida é: 

 

Como está seu Zend2 / Action?

 

Está com o CSRF ativo?

https://framework.zend.com/manual/2.4/en/modules/zend.form.element.csrf.html

 

Está esperando os parametros $_POST do modo 'Zf2'? 

$request->getPost('data'));

 

Está bem vago a duvida, tente preencher com mais detalhes, ou até resolver com as dicas acima.

Share this post


Link to post
Share on other sites

Fala Gabriel, obrigado pela resposta.

 

Não aparece erro no browser ...

 

Minha Action esta assim:

 


$request = $this->getRequest();
        $em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
        $sdao = $em->getRepository("Application\Model\Servico");

        if ($request->isPost()) {
            if ($request->getPost("datai")) {
                $inicio = \DateTime::createFromFormat("d/m/Y", $request->getPost("datai"));
                $inicio = date_format($inicio, 'Y-m-d');
               
            } else {
                $inicio = false;
            }

            if ($request->getPost("dataf")) {
                $fim = \DateTime::createFromFormat("d/m/Y", $request->getPost("dataf"));
                $fim = date_format($fim, 'Y-m-d');
            } else {
                $fim = false;
            }

            $file = $request->getPost("file");
            $cli = $request->getPost("cli");
            $servicos = $sdao->periodo($cli, $file, $inicio, $fim);
        }
       

 

 

Share this post


Link to post
Share on other sites

Se deu uns var_dump ai rapaz?

 

 

Debbuga tudo ai pow:

var_dump($request->isPost());
var_dump($request->getPost("dataf"));
var_dump($request->getPost("datai"));

Cade a resposta do Preview/Response ??? (Igual eu coloquei)

 

Como imagem já referenciada abaixo:

https://camo.githubusercontent.com/266d501d06cd9a5f7fc4a7277b2710fa6e13bade/68747470733a2f2f6761627269656c646172657a7a6f2e6769746875622e696f2f696d6173746572732f696d672f616a61785f666c75786f2e706e67

 

Share this post


Link to post
Share on other sites

Fala Gabriel,

 

Cara, não to conseguindo inserir a imagem aqui. Esse é o trecho do código que aparece no Response pra mim:

 


<div class="table-responsive">
            <div class="col-md-12">
                <input type="text" name="datai" id="datai" hidden value="2017-08-01">
                <input type="text" name="dataf" id="dataf" hidden value="2017-08-09">
                <input type="text" name="file" id="file" hidden value="">

 

Eu realmente só preenchi  a datai e a dataf

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Leandro T.
      $.ajax({
             
           url: 'ajaxfile2.php?xis=<?php echo $PerguntasRow["pergunta_id"];?>&resx=<?php echo $_SESSION["respon"]; ?>', 
           type: 'POST',
           data: form_data2<?php echo $PerguntasRow["pergunta_id"];?>, 
           dataType: 'json',
           contentType: false,
           processData: false,
             
           success: function (data)  {  }
            }); 
               
              
      }
                       Pessoal, boa tarde! não estou conseguindo fazer o ajaxfile2.php receber os parâmetros deste ajax
       
       
    • By manolegal
      Boa tarde
      Tenho 5 campos do tipo select no meu formulário.  A seguir um dos campos.
      <div id="resp" class="form-group col-md-3" placeholder="Responsável" title="Pesquisar por Responsável"> <select class="form-control" id="resp" name="resp" placeholder="Responsável" title="Pesquisar por Responsável"> <option value="">Responsável</option> <?php $Sql = "SELECT ..."; $Resultado = ... while ($linha = @pg_fetch_array($Resultado)){. $id_responsavel_bd = $linha["id_responsavel"]; $nome_responsavel_bd = $linha["responsavel"]; if ($resp == $id_responsavel_bd){ echo "<option value='$id_responsavel_bd' selected = 'selected'>$nome_responsavel_bd</option>";} else{ echo "<option value='$id_responsavel_bd'>$nome_responsavel_bd</option>";} } ?> </select> </div> Tenho uma função jquery que ao selecionar qualquer um destes campos, faz uma requisição ajax para atualizar uma div do meu form.
      <script type="text/javascript"> $(document).ready(function(){ $('select').change(function(){ // Todos selects $('form').submit(function(){ var dados = $(this).serialize(); $.ajax({ type: "POST", url: 'arquivo_ajax.php', dataType: 'html', data: dados, }).done(function(data){ //console.log(data); $("#list").empty().html(data); }); return false; }); $("#meu_form").trigger('submit'); }); }); </script> Ao abrir o formulário e fazer a primeira seleção de algum campo do tipo select, é gerada uma solicitação ajax.
      O problema é que a cada nova seleção deste campo e de algum outro campo, ao invés de realizar UMA ÚNICA REQUISIÇÃO, está aumentando o número de requisições a cada nova ação.
      Como não tenho muitos conhecimentos em jquery/ajax em minha dúvida:
      - É normal ir aumentando o número de requisições?
      - Deveria sempre realizar apenas uma requisição (imagino que seja correto)?
      - Meu código está correto? Se não está, onde estou errando?
      Desde já agradeço pela colaboração.
       
       
    • By Person
      Estou fazendo um protótipo de e-commerce com aps clássico e sql server, na parte de administração, o usuário administrativo pode alterar o status do pedido,  para isso ele clica no botão de alterar na pagina principal e é redirecionado para um formulário onde tenho as options, para que ele mude o status, coloquei um botão para que ele passe os parâmetros  (id_pedido e id_status_pedido) para a pagina de manutenção, onde é feito o update e o envio de e-mail com as atualizações. Mas quero retirar esse botão e fazer com que, assim que eu clique em uma opção, ele altere, sem eu precisar ser redirecionado para a tela de manutenção, isso com o Ajax se possível.
       
      <body> <% call Abredb() cod = Request.QueryString("cod") evt = Request.QueryString("evt") if cod <> "" then cod = cint(cod) end if if ucase(evt) = "ALT" then sql = "exec SP_TR32_status_frm_SEL" 'Response.Write(sql) 'Response.End() set rs = dbWeb.execute(sql) estrato = rs("id_status_pedido") bot = "Alterar" end if %> <div class="container"> <div class="titulo">Formulario</div> <form action="manu_pedido.asp" method="post" enctype="multipart/form-data"> <div class="detalhes-formulario"> <div class="input-box"> <span class="detalhes">status</span> <select class="form-control" name = "status"> <% do while not rs.eof%> <option value="<%=rs("id_status_pedido")%>"><%=rs("descricao")%></option> <% rs.movenext loop rs.close set rs = nothing %> </select> </div> </div> <button><a href="/treinamento/Thau/mini_mercado/adm/manu_pedido.asp?evt=alt&cod="<%=cod%>"&estrato="<%rs("id_status_pedido")%> </form> </div> <br> </body> <%call Fechadb()%> </html> Abaixo está o código da minha pagina de manutenção, no qual acontece a alteração do status
      <% Function ZerosEsquerda(Num,tam) Dim Zero Num = Trim(Num) Zero = "" For i = Len(Num) To tam - 1 Zero = "0" & Zero Next ZerosEsquerda = Trim(Zero & Num) End Function byteCount = Request.TotalBytes RequestBin = Request.BinaryRead(byteCount) Set UploadRequest = CreateObject("Scripting.Dictionary") BuildUploadRequest RequestBin 'opc = request.QueryString("opc") 'if opc = "" then 'cod = UploadRequest.Item("hfcod").Item("Value") 'botao = UploadRequest.Item("botao").Item("Value") 'estrato = UploadRequest.Item("estrato").Item("Value") 'end if session.LCID = 1046 call Abredb() if botao = "Alterar" then ' ALTERANDO OS DADOS RECEBIDOS NA TABELA sql = "exec SP_TR32_pedido_UPD "&cod&", '"&estrato&"'" 'response.write sql 'response.end dbWeb.execute(sql) str_html = "" str_html = str_html & "<HTML><BODY BGCOLOR=#0000FF>" str_html = str_html & "<h1>produtos</h1>" sql ="SP_TR32_email__itens_sel "&cod&"" set rs = dbWeb.execute(sql) str_html = str_html & "<table>" str_html = str_html & "<thead>" str_html = str_html & " <tr>" str_html = str_html & "<th>Produtos</th>" str_html = str_html & "<th>quantidade</th>" str_html = str_html & " <th>Total</th>" str_html = str_html & "</tr>" str_html = str_html & " </thead>" str_html = str_html & "<tbody>" do while not rs.eof str_html = str_html & "<tr>" str_html = str_html & "<td >"&rs("produto")&"</td>" str_html = str_html & "<td >"&rs("quantidade")&"</td>" str_html = str_html & "<td >"&rs("total")&"</td>" str_html = str_html & "</tr>" rs.movenext loop rs.close set rs = nothing str_html = str_html & " </tbody>" str_html = str_html & "</table>" str_html = str_html & "</BODY></HTML>" sql = "SP_TR32_email_sel "&cod&"" set rs = dbWeb.execute(sql) if estrato<>"" then Set ObjMail = Server.CreateObject("Cdonts.Newmail") objMail.Subject = "Atualização de pedido" objMail.From = "Porto Dourado <contato@email.websupply.com.br>" objMail.To = "request("email")" objMail.BodyFormat = 0 objMail.MailFormat = 0 objMail.Body = "Olá"&" "&rs("nome")&" "&rs("sobrenome")&", </br> Houve uma atualização em seu pedido pedido: "&rs("id_pedido")&" </br> o status mudou para: "&rs("descricao")&" </br> endereço de entrega: "&rs("cep")&", "&rs("rua")&", "&rs("bairro")&", "&rs("numero")&", "&rs("cidade")&", "&rs("Uf")&" </br>Total pedido: "&rs("total_pedido")&" </br> "& str_html &" </br></br>"&" Atentamente,"&" </br> "&"Equipe Porto dourado"&" </br></br> "&"Para entrar em contato com a equipe de suporte, entre em contato com o email ou ligue para nossa central no numero " objMail.Send Set objMail = nothing envio = true %> <script> alert('email com alteração enviado com sucesso!'); </script> <% end if if estrato = 6 then sql = "exec SP_TR32_adm_data_envio_UPD "&cod&"" dbWeb.execute(sql) end if if estrato = 4 then sql = "exec SP_TR32_adm_data_entregue_UPD "&cod&"" dbWeb.execute(sql) end if %> <script> alert("Dados alterado com sucesso!") parent.location = "cst_pedido.asp" </script> <% end if %> <%call Fechadb()%>  
    • By DuduBacteria
      Olá,
      table = $('.dataTable').DataTable({ 'destroy':true, 'ajax':{ 'url':DIRPAGE + '/painel/exibir-brinde/todos', 'method':'GET', 'dataSrc':'' }, 'columns':[ {'data':'nome'}, {'data':'doc'}, {'data':'brinde'}, {'data':'data'}, {'data':'empresa'}, {'defaultContent':'<td class="id"><button class="btn btn-success btn-resgatar" value="id_usuario" id_brinde="id_brinde"><i class="fas fa-plus-circle"></i> Resgatar </button></td>'} ] });  
    • By biza
      Viva pessoal, 
      Estou tentando  fazer uma consulta em que os parâmetros são enviados através do ajax para o php, até aqui tu esta a correr bem. O problema é quando tento resgatar a resposta através do "console.log" é me devolvido "undefined", será que alguém me pode auxiliar com esse pequeno problema?! Em baixo segue o essencial do código do ajax e php.
      AJAX
      $.ajax({ type: 'POST', url:'index2.php?adm='+$pag, data:{send: 1, opt: $option}, //dataType:'json', success: function(result){ console.log(result); } }); PHP
      $data = array(); /*USER OPTION REQUEST*/ if (isset($_POST['send'])){ switch($_POST['opt']){ ... case 3: /*ERASE SELECTED ITEMS*/ $data = array('status'=>'OK'); echo json_encode($data); die; break; } } Supostamente se no console.log adiciona-se "result.status" deveria obter "OK", mas em vez disso obtenho undefined. Caso execute o código da forma que esta obtenho como resultado
      {"status":"OK"}
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.