Ir ao conteúdo
  • Cadastre-se
fspjonny

JQuery envio de dados pelo ajax

Posts recomendados

Olá a todos!

Estou com dificuldade em matar essa charada, por CERTAMENTE estar fazendo algo errado.

 

Tenho uma página chamada oportunidades.php

dentro dela tenho um código que pega os dados de vagas listadas de emprego(cod_vaga, titulo_vaga) e cada vaga tem um botão Enviar Curriculo.

image.png.9d72543a844530e6aa881cc39767bd3c.png

 

Essa parte acima funciona OK

 

O problema reside em enviar esses dados cod_vaga, titulo_vaga, para uma outra página php (curriculo.php), via ajax.

 

Em oportunidades.php tenho esse JQuery.

/* O value de cada button que é clicado é recebido aqui em uDados com os valores da vaga */

		$('#grupo button').on('click',function(e){
			e.preventDefault();
			
			var uDados = $(this).val();

			$.ajax({
			url : 'oportunidades.php',
			type : 'post',
			data : {info : uDados}
			});
			
			$('#conteudo').load('oportunidades/curriculo.php'); 
          /* Carrega curriculo na DIV para receber uDados*/
			
		});

Criei uma sessão para receber a informação dos dados e passar isso para curriculo.php

/* Verifica se ocorre POST */

	if(!isset($_POST["info"])){

		echo $erroLevel;

	} else {
		
		$_SESSION["codigo_vaga"] = $_POST["info"];
		
	}

Em curriculo.php uma sessão se abre para receber codigo_vaga

session_start();
$vaga = $_SESSION["codigo_vaga"];



/* Esse HTML abaixo recebe o valor de $vaga */
<p class="mt-1">Candidatura a vaga: <strong><?php echo $vaga; ?></strong></p>

 

A operação em curriculo.php não ocorre, mas é aberto o formulário de envio de currículo, porém a descrição(titulo_vaga) e o código da vaga(cod_vaga), não estão aparecendo.

image.thumb.png.e48d0aeb1cbdb6814cdc790579064c13.png

 

O que fiz de errado??? 

Teria um meio mais eficaz de fazer isso???

Pois tentei fazer enviando diretamente via ajax/POST para curriculo.php e também não tive êxito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!
Aparentemente o  $(this) em:
 

var uDados = $(this).val();


só vai pegar o atributo value de
 

$('#grupo button')



sugestão:
no value do button, envie a id da vaga
e no arquivo que trata os dados recebidos, busque os demais dados daquela vaga específica.

Compartilhar este post


Link para o post
Compartilhar em outros sites
43 minutos atrás, washalbano disse:

Olá!
Aparentemente o  $(this) em:
var uDados = $(this).val();
só vai pegar o atributo value de
$('#grupo button')

sugestão:
no value do button, envie a id da vaga
e no arquivo que trata os dados recebidos, busque os demais dados daquela vaga específica.

 

Sim! pois é!, foi isso mesmo que eu fiz, no comentário acima sobre o oportunidades.php, onde tenho a explicação do JQuery, eu comento que o value de cada button é quem vai para uDados; Se der um alert() nele os dois valores de titulo_vaga e cod_vaga, aparecem capturados na caixa de alerta.

 

Porém esses dois valores não estão indo até a sessão que eu criei, não sei se o data : {info : uDados} está enviando os valores para essa sessão ou até mesmo se ele os recebe, tenho que testar isso ainda.

 

Grato pela ajuda!:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho duas páginas uma tem o formulário que o POST é feito via ajax, a segunda página recebe o POST e devolve o resultado, até ai normal.

seria algo como:

Página 1(index.php)

O Formulário...........

<form method="post" action="">
    <label>Nome: <input type="text" name="nome"/></label><br/><br/>
    <input type="submit" value="Inserir"/>
</form>
<div id="resultado"></div>


O JQuery................

<script>
    $(document).ready(function(){
        
        $('form').on('submit', function(e){
            e.preventDefault();
            
            var txt = $(this).serialize();
            
            $.ajax({
                type:'POST',
                 url:'processa.php',
                data:txt,
             success:function(e){
                $('#resultado').html(e);
             },
            error:function(){
               alert("Deu Erro!");
            }
            });
            
        });
        
    });
</script>

A página2 (processa.php)

<?php
if(!isset($_POST['nome'])){
   
} else {
  
$v1 = $_POST['nome'];

	echo "O nome é: ".$v1;
  
}

Nada de novo, tudo funciona!

 

Mas se ao invés de ter o retorno na index.php, eu quiser esse retorno em uma terceira página(exibe.php)? Como deve proceder?

 

Index.php  -> processa.php -> exibe.php

 

A exibe.php deve ser carregada(load) no lugar da index.php para exibir os dados processados em processa.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!
Você quer trocar a url? Ou apenas trocar o conteúdo que está sendo mostrado na tela?
Se quiser trocar a url, talvez não precise enviar os dados via ajax
Se quiser trocar apenas o conteúdo da janela ou parte dela
dentro da function success do $.ajax você pode usar um $(element).load('exibe.php') para carregar o conteúdo de exibe.php dentro do elemento html que precisar.

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 horas atrás, washalbano disse:

Olá!
Você quer trocar a url? Ou apenas trocar o conteúdo que está sendo mostrado na tela?
Se quiser trocar a url, talvez não precise enviar os dados via ajax
Se quiser trocar apenas o conteúdo da janela ou parte dela
dentro da function success do $.ajax você pode usar um $(element).load('exibe.php') para carregar o conteúdo de exibe.php dentro do elemento html que precisar.

 

Bom dia!

São duas telas, uma com carregamento imediato index.php a outra exibe.php que ainda não foi carregada, pois ela só é carregada após o processamento feito em index.php

 

Então eu preciso que as informações de index.php sejam repassadas para exibe.php(que ainda não foi carregado) e nela sejam armazenada as informações em uma variável  para um trabalho posterior.

 

Acontece que a index.php após processar a informação, deve ser sobreposta por exibe.php através de um load(), pois

ambas são cerregadas dentro do mesmo container, mas eu deveria criar um espaço de memória temporário, onde a index.php envia a informação e a exibe.php resgata essa informação.

 

Pora isso já tentei usar uma sessão, mas não tô obtendo resultado, e  com ajax, não consigo enviar a informação direto para dentro de exibe.php.

 

Tá faltando lógica nisso e não tô conseguindo pensar em nada diferente no momento.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Redes de Computadores - Gabriel Torres

PROMOÇÃO DE QUARENTENA

De R$ 39,90 por apenas R$ 9,90 só até as 23h59min desta sexta-feira 03/04/2020

CLIQUE AQUI E COMPRE AGORA MESMO!