Ir para conteúdo

POWERED BY:

Arquivado

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

Leco RP

Passar parâmetro de URL dinâmica via GET (Ajax+PHP)

Recommended Posts

Olá pessoal,

 

Estou com uma dúvida: como passar um parâmetro de uma URL dinâmica via GET?

 

Via POST, eu utilizei essa função em uma outra parte que faz algo parecido:

jQuery(document).ready(function(){
		jQuery('#ajax_form').submit(function(){
			var dados = jQuery( this ).serialize();

			jQuery.ajax({
				type: "POST",
				url: "edita.php",
				data: dados,
				success: function( data )
				{
				$('#grid').show();
                                $('#grid').html(data);
				}
			});

			return false;
		});
	});

 

Para gerar o link dinâmico estou fazendo assim:

<a href='edita.php?id={$linha['id']}'>Editar</a>

 

A dúvida é como fazer algo parecido com o POST mas utilizando GET.

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em servidor Apache,quando o método não é definido no código,ele assume automaticamente o método GET.

 

(tente omitir ou modificar,veja seu código)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Edgard e Almir,

 

Primeiramente obrigado pela ajuda.

 

Vou tentar explicar melhor minha dúvida: Esse código que postei utilizo para passar os parâmetros do formulário "ajax_form" para a página em php "edita.php" via POST.

O que eu quero é fazer algo parecido só que em vez de passar os dados de um form via POST queria passar o ID de um link dinâmico via GET para uma página php.

 

Obrigado novamente.

 

Abraços.

 

 

Olá novamente pessoal,

 

 

 

Ainda não cheguei a uma solução para isso...

Será que é possível fazer isso que pretendo ou não existe solução?

 

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alan,

 

Eu queria passar o parâmetro que está em um link dinâmico (como mostrei acima)... Não seria usado nenhum elemento form.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok.. crie um novo arquivo:

url: "edita2.php?VARIAVEL=VALOR&VAR2=VAL2"mas como é ajax ele não vai redirecionar, ele vai simplesmente retornar o resultado.. entendeu?a melhor coisa que vc tem a fazer é colocar por post, mas qual é sua ideia?abrir uma pagina ou uma div com os dados de um ID de uma tabela para fazer um UPDATE?se sim, não é melhor por POST? se quer separar o arquivo, não é mais simples criar um novo somente?acho que fiquei meio no ar com essa duvida

Compartilhar este post


Link para o post
Compartilhar em outros sites

wxeon,

 

Primeiramente, obrigado pela ajuda.

 

Ontem após responder ao Alan, resolvi mudar a ideia de passar por GET e utilizar o POST tal qual me sugeriu.

 

Para não ter que criar um form para cada linha da minha grade (por isso a ideia inicial de passar o parâmetro por GET, já que que cada linha terá um botão "Editar"), usei o elemento button para chamar o Ajax, com esse código:

	$(document).ready(function() {		$("input[type=button]").click(function(event) {			var texto = $('#id').attr("value");			$.post('editar.php',{id:texto},			function call_back(data){				$("#grade").html(data);			});		});	});

E para gerar dinamicamente cada linha da minha grade adicionei esse código PHP a um WHILE:

echo "<input type='hidden' id='id' value='{$reg['id']}' /><input type='button' value='EDITAR' />";

Está funcionando, porém, se a grade tiver mais de uma linha ele só pega o ID da primeira linha...

Ou seja, se eu tiver algo do tipo:

 

COLUNA 1 COLUNA 2 COLUNA 3

---BLA 1--- ---BLA----- EDITAR (ID 1)

 

 

---BLA 2--- ---BLA----- EDITAR (ID 2)

 

Quando eu clico na segunda linha em vez de dar o POST com o valor do ID 2 o post retorna o ID 1.

 

Como possa fazer para resolver essa questão?

 

Abraços e obrigado novamente.

 

 

Ainda não consegui solucionar o problema e pelo que andei pesquisando não encontrei nada a respeito.

 

 

 

Será que isso não tem solução?

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque isso:

var texto = $('#id').attr("value");
por:
var texto = $(this).prev('input').attr("value");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá William,

 

Sua dica funcionou perfeitamente.

 

Porém, a necessidade agora é passar dois parâmetros dinâmicos. Tentei alterar novamente o JS mas cai na questão anterior de passar o mesmo parâmetro para um deles (a alteração que você sugeriu deu certo, só preciso saber onde devo corrigir novamente para funcionar).

Veja só o JS até onde cheguei (na verdade uma mistura do que eu tinha antes com a alteração que você me sugeriu):

		$("input[type=button]").click(function(event) {
			var valor = $(this).prev('input').attr("value");
			var id = $('#id').attr("value");
			$.post('teste.php',{valor:valor,id:id },
			function call_back(data){
				$("#resultado").html(data);
			});
		});
	});

 

E no php:

echo "Valor <input type='hidden' id='id' name='id' value='$id' /><input type='text' id='pagamento' name='pagamento' size='5' value='$valor' /><input type='button' value='Ok' />";

O campo pagamento está ok, porém o ID (tipo hidden) retorna sempre o mesmo valor.

 

Agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque:

var id = $('#id').attr("value");
por:
var id = $(this).prev().prev().attr("value");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda, William!

 

Foi resolvido e acabei esquecendo de agradecer e marcar como resolvido.

 

Desculpem a demora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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