Array
(
)

PHP - array $_POST com letras das keys em array

PHP
Edcp_poa
   - 27 nov 2014

Prezados:
Situação: envio um formulário para uma página e a mesma me retorna uma matriz com todas (sim TODAS) as letras separadas em um keys de 0 ao número que for necessário.
Método: POST, via AJAX;
Plugin: jQuery Form (http://malsup.com/jquery/form/);
Erro ocorria anteriormente? Não; e
Servidor: XAMPP Version 1.8.3.
Não atoa, peço ajuda. Não sou do tipo que gosta de respostas fáceis. Já pesquisei no Google e não encontrei nada.
Aguardo sua ajuda.

Thalisson Chagas
   - 27 nov 2014

Posta o Codigo pra eu ver.

Edcp_poa
   - 27 nov 2014

Para vocês terem uma melhor noção:

HTML
#Código
<form name="formContato" action="">
<input name="acao" type="hidden" value="contato">
<!-- Nome -->
<label for="nome">Nome</label>
<input name="nome" type="text" width="100%" maxlength="45" required="" autofocus="">
<!-- E-mail -->
<label for="email">E-mail</label>
<input name="email" type="email" width="100%" maxlength="100" required="">
<!-- Telefone -->
<label for="fone">Telefone</label>
<input name="fone" id="fone" type="text" required="">
<!-- Assunto -->
<label for="assunto">Assunto</label>
<input name="assunto" type="text" width="100%" maxlength="40" required="">
<!-- Mensagem -->
<label for="mensagem">Sua mensagem</label>
<textarea name="mensagem" rows="10" required=""></textarea>
<br>
<!-- Botão Enviar -->
<input name="enviar" type="submit" value="Enviar">
</form>


JAVASCRIPT/jQUERY
#Código
$(function(){
$('form[name="formContato"]').submit(function(){
var resposta = $('div#respCon'),
dadosForm = $('form[name="formContato"]').serialize();
var options = {
url: 'includes/send_mail.php',
data: dadosForm,
type: 'POST',
target: resposta,
beforSubmit: function(){
resposta.empty().html("<div id='carregando'><img src='public/css/images/ajax-loader.gif'> Carregando imóveis...</div>");
},
success: function(sucesso){resposta.empty().html(sucesso);},
error: function(){
resposta.empty().html("<p id='erro'>Desculpe-nos o transtorno.</p><p>No momento nossa hospedagem passa por uma atualização.");
}
};
$(this).ajaxSubmit(options);
return false;
});
});


PHP
#Código
echo '<pre>';
print_r($_POST);
echo '</pre><hr>';


RESULTADO
Array
(
[acao] => contato
[nome] => Matuzalem Barbado
[email] => matuzabarba@gmail.com
[fone] => (55) 5555-55555
[assunto] => Teste de envio
[mensagem] => Mensagem a ser enviada...
[0] => a
[1] => c
[2] => a
[3] => o
[4] => =
[5] => c
[6] => o
[7] => n
[8] => t
[9] => a
[10] => t
[11] => o
[12] => &
[13] => n
[14] => o
[15] => m
[16] => e
[17] => =
[18] => M
[19] => a
[20] => t
[21] => u
[22] => z
[23] => a
[24] => l
[25] => e
[26] => m
[27] => +
[28] => B
[29] => a
[30] => r
[31] => b
[32] => a
[33] => d
[34] => o
[35] => &
[36] => e
[37] => m
[38] => a
[39] => i
[40] => l
[41] => =
[42] => m
[43] => a
[44] => t
[45] => u
[46] => z
[47] => a
[48] => b
[49] => a
[50] => r
[51] => b
[52] => a
[53] => %
[54] => 4
[55] => 0
[56] => g
[57] => m
[58] => a
[59] => i
[60] => l
[61] => .
[62] => c
[63] => o
[64] => m
[65] => &
[66] => f
[67] => o
[68] => n
[69] => e
[70] => =
[71] => (
[72] => 5
[73] => 5
[74] => )
[75] => +
[76] => 5
[77] => 5
[78] => 5
[79] => 5
[80] => -
[81] => 5
[82] => 5
[83] => 5
[84] => 5
[85] => 5
[86] => &
[87] => a
[88] => s
[89] => s
[90] => u
[91] => n
[92] => t
[93] => o
[94] => =
[95] => T
[96] => e
[97] => s
[98] => t
[99] => e
[100] => +
[101] => d
[102] => e
[103] => +
[104] => e
[105] => n
[106] => v
[107] => i
[108] => o
[109] => &
[110] => m
[111] => e
[112] => n
[113] => s
[114] => a
[115] => g
[116] => e
[117] => m
[118] => =
[119] => M
[120] => e
[121] => n
[122] => s
[123] => a
[124] => g
[125] => e
[126] => m
[127] => +
[128] => a
[129] => +
[130] => s
[131] => e
[132] => r
[133] => +
[134] => e
[135] => n
[136] => v
[137] => i
[138] => a
[139] => d
[140] => a
[141] => .
[142] => .
[143] => .
)

Edcp_poa
   - 28 nov 2014

RESOLVIDO

O problema era o seguinte: o plugin não precisa de serialize(), pois já serializa todos os dados sozinho. Outro erro no script é o beforSubmit, sendo correto; beforeSubmit (risos). Simples assim. É rir pra não chorar, tchê! Espero que isto ajude alguém.

Abaixo, código corrigido:
#Código
$(function(){
$('form[name="formContato"]').submit(function(){
var resposta = $('div#respCon');
var options = {
url: 'App/controllers/send_mail.php',
type: 'POST',
target: resposta,
beforeSubmit: function(){
resposta.empty().html("<div id='carregando'><img src='public/css/images/ajax-loader.gif'> Carregando imóveis...</div>");
},
success: function(sucesso){resposta.empty().html(sucesso);},
error: function(){
resposta.empty().html("<p id='erro'>Desculpe-nos o transtorno.</p><p>No momento nossa hospedagem passa por uma atualização.");
}
};
$(this).ajaxSubmit(options);
return false;
});
});

Edcp_poa
   - 28 nov 2014

RESOLVIDO

1- O plugin não precisa do comando serialize (ele faz o trabalho sozinho);

2- Logo o problema não era PHP, como eu pensava, mas jQuery... (desculpe...);

3- Eu escrevi beforSubmit e não beforeSubmit (risos); e

4- Meu setTimeout também não funcionava, mas decidi não utilizá-lo.

O código ficou o seguinte:
#Código
$(function(){
$('form[name="formContato"]').submit(function(){
var resposta = $('div#respCon');
var options = {
url: 'send_mail.php',
type: 'POST',
target: resposta,
beforeSubmit: function(){
resposta.empty().html("<div id='carregando'><img src='public/imgs/ajax-loader.gif'> Carregando imóveis...</div>");
},
success: function(sucesso){resposta.empty().html(sucesso);},
error: function(){
resposta.empty().html("<p id='erro'>Desculpe-nos o transtorno.</p><p>No momento nossa hospedagem passa por uma atualização.");
}
};
$(this).ajaxSubmit(options);
return false;
});
});