Ir para conteúdo

POWERED BY:

Arquivado

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

JoseCarlosWeb

[Resolvido] Enviar array via $.ajax

Recommended Posts

Olá pessoal, tudo jóia?

To precisando de um help aqui.

Tenho uma sequencia de checkboxes selecionados e todos tem o mesmo nome (name="numero") e estou tentando enviar via $.ajax para um arquivo php o value dos checkboxes selecionados.

A principio eu tenho:

$("a#manda-carrinho").click(function(){

			var numSelecionados = new Array();				

			$("input[type=checkbox][name='numero[]']:checked").each(function(){			
				numSelecionados.push($(this).val());					
			});

			$.ajax({
				type: "POST",
				url: "atualiza_carrinho.php",
				data: {produtos : numSelecionados}
			}).done(function(msg){
				alert("deu certo");					
				});


		});

 

Ao clicar no link manda-carrinho ele deveria enviar os números selecionados, porém o que me retorna é um erro... o firefox chega a travar até.

Peço a ajuda de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$.post('atualiza_carrinho.php' , {data : numSelecionados} , function(data){

//TODO : handle response

});

tenta assim, mas eu acho que o problema esta antes da sua request com o server, ve o que tem nesse numSelecionados antes de mandar a requisicao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá paulojuchem, obrigado por responder.

Eu analisei o conteúdo de numSelecionados e a meu ver está correto (0001,0002,0003...) eu já testei tanto $.post quanto $.get e da o mesmo erro... será que existem outras alternativas?

 

O erro que o chrome me retorna é esse:

 

Uncaught RangeError: Maximum call stack size exceeded
e.extend.type
b_
b_
b_
b_
b_
b_
b_
...(dezenas de b_)...
b_
b_
b_
b_
b_

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver. a solução era muito simples:

$.post('atualiza_carrinho.php' , {'data[]' : numSelecionados} , function(data){
//TODO : handle response
});

Se eu estava enviando um array() devo informar que a variável que vai levar os dados tbm é um array, daí a necessidade de por { 'data[]'} entre aspas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No Javascript, utilize:

JSON.stringfy(array);

P.S.: isso não funciona os IEs antigos, mais existe uma implementação do objeto JSON que você pode incluir através de comentários condicionais.

 

No PHP faça:

$data = json_decode($_POST['<NOME DO CAMPO']);

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.