Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Seguinte, estou trabalhando com Ajax para validar os campos de um formulário e na callback preciso retornar um array vindo do PHP.
AJAX
$(function($){
$("#formulario").submit(function(){
//crio as variáveis aqui
//Mando via post pro arquivo PHP
$.post('pagina.php',{
//variáveis enviadas
}, function(resposta){
if(resposta){
//Aqui resposta seria o array vindo PHP
}
})
});
});
PHP
//recebo as variaveis
//faço um select e armazeno os valores no arra
$resultado = array();
$resultado[1] = "item";
$resultado[2] = "item2";
Sei que existe o each() do jquery, só não estou sabendo tratar as informações. resposta se torna automaticamente um array? tenho que transformar a variável resposta em um array pra receber o array do PHP?
>
tente trabalhar com o json encode.
de um json_encode no seu array e quando retornar no jquery da um console.log e ve como retorna
{resultado1: "item1"} // acho que vai retornar assim se não me engano
e para recupera no jquery é
resposta.resultado1
cara vou tentar isso aqui, mas não tem um exemplo prático não. Ajudaria bastante ;)
Show de Bola esse função. Retorna os itens do array, entre aspas e com alguns caracteres estranhos mas já é meio caminho andado rsrs
Isso aqui não funciona 'resposta.resultado1'
Exemplo prático você encontra na própria documentação do jQuery. /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/wink.gif&key=0566fd943552bcff9cb1b879403ca34b5ff8f67befaac7fe4648006e9f764689" alt="wink.gif" />
Depois de uma noite em claro consegui alguns exitos. Porém agora a pesquisa nãoretorna nenhum resultado. Pelo firebug vejo as variáveis e mostra que os valores foram passado corretamente como mostra a imagem:
/applications/core/interface/imageproxy/imageproxy.php?img=http://i40.tinypic.com/34rar9j.jpg&key=bca10c498cfa6b2db8ae09abbc28f93b771ade438f235500210e0160a04b2d5f" alt="34rar9j.jpg" />
O jquery
$(function(){
$("#form_pesquisa").submit(function(){
var result = $(this).serialize();
$.ajax({
type: 'post',
url: 'iteracao/grava_dados/valida_busca.php',
data: result,
success: function(data){
var obj = $.parseJSON(data);
alert(obj);
$.each(obj, function(){
var a = obj.a;
}
}
});
});
});
o php
$filtro = $_POST['filtro'];
$busca = $_POST['busca'];
$qr_cliente = mysql_query("SELECT ".$filtro." FROM clientes WHERE ".$filtro." = ".$busca."");
$linha = mysql_num_rows($qr_cliente);
if($linha > 0){
$ln = mysql_fetch_assoc($qr_cliente);
$resultado = array(
"a" => $ln['id'],
//continua
);
echo json_encode($resultado);
}
tente trabalhar com o json encode.
de um json_encode no seu array e quando retornar no jquery da um console.log e ve como retorna
{resultado1: "item1"} // acho que vai retornar assim se não me engano
e para recupera no jquery é
resposta.resultado1