Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia, tenho um form de pesquisa e para não ter que pegar o valor de cada input manualmente, queria pegar todos e depois enviar.
Procurei no google e achei uma função:
var inputs = new Array();
$('form input').each(function()
{
inputs.push($(this).val());
});
So que não consigo imaginar como fazer para depois enviar os dados via post para um php. Se alguem puder me ajudar agradeço.
Legal seria assim?
$(document).ready(function(){
$('#form').submit(function(){
var nome = $('#nome');
var inputs = $(this).serialize();
if(nome.val()==''){
nome.addClass('error');
nome.focus();
}else{
$.post("enviarPesquisa.php", { inputs: inputs },
function(data) {
$('#formulario').html(data);
});
}
return false;
});
});
Um detalhe como desmembrar o inputs no php?
lá você vai receber normal..
$_POST['nome'], $_POST['email']...
Fiz o seguinte para testar:
<?php
if(empty($_POST['nome'])){
echo "Coloque seu Nome.";
}else{
echo "Enviado";
}
?>
Mas deu que está vazio.
Consegui fazer algo, mas não sei se está certo ou se o indicado...
$varInputs = explode('&',$inputs);
foreach ($varInputs as $input) {
$valueInputs = explode('=',$input);
$var = urldecode($valueInputs[0]);
$value = urldecode($valueInputs[1]);
eval("$$var = \"$value\";");
}
echo $nome;erro meu.. já que você fez o serialize, você deve enviar com o $.ajax()
ai chega 'certo' do outro lado.
desculpe.
Ok Funcionou.
era mais simples usar a função .serialize()
e para enviar, use a $.post()
dá uma olhada no manual, lá tem exemplos de uso.