Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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_
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.
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']);
$.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