Ir para conteúdo

Arquivado

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

tocho

Enviar array para o php com ajax

Recommended Posts

Tenho os seguintes campos:

 

            <input name="discriminacao[]" type="text" class="input_discriminacao" />
            <input name="valor[]" type="text" class="input_valor" />

            <input name="discriminacao[]" type="text" class="input_discriminacao" />
            <input name="valor[]" type="text" class="input_valor" />

            <input name="discriminacao[]" type="text" class="input_discriminacao" />
            <input name="valor[]" type="text" class="input_valor" />

 

Fiz o javascript assim:

 

            // Pega os valores dos campos Discriminação e Valor
            var discriminacao = $('.input_discriminacao');
            var valor = $('.input_valor');

            var array_discriminacao = new Array();
            for(i=0; i<=2; i++)
            {
                array_discriminacao[i] = discriminacao[i].value + "|#|" + valor[i].value + "|FIM|";
            }

            $.ajax(
                   {
                    type: "POST",
                    url: "ajax.php",
                    data: "discriminacao[]=" + array_discriminacao,
                    //enquanto a função esta sendo processada
                    beforeSend: function() { },
                    success: function(txt) { alert(txt) },
                    error: function(txt) { alert("erro1: "+txt.responseText); }
                   }
            );

Eu fiz um var_dump em $_POST['discriminacao'], e ele ficou um array de apenas uma posição com todos os valores do array_discriminacao separado por vírgula...

 

No ajax.php eu usaria o EXPLODE para separar os dados e salvar no banco, mas esse código está muito feio, to achando muita gambiarra demais. Alguém tem uma solução interessante?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não precisa da classes:

var discriminacao = $('.input_discriminacao');
            var valor = $('.input_valor');
pode fazer pelo name dos inputs..

var discriminacao = $("input[name='input_discriminacao']");
            var valor = $("input[name='input_valor']");

Tô pensando em alguma forma de envio para ficar 'mais bonito' isso ai..

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não precisa da classes:

var discriminacao = $('.input_discriminacao');
            var valor = $('.input_valor');
pode fazer pelo name dos inputs..

var discriminacao = $("input[name='input_discriminacao']");
            var valor = $("input[name='input_valor']");

Tô pensando em alguma forma de envio para ficar 'mais bonito' isso ai..

 

Dica valiosa...

 

To pensando aqui..tmb.. http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

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.