Array
(
)

Função filtrarProduto e filtrarprodutos

Felipe
   - 01 nov 2014

Pessoal, boa tarde.
Estou trabalhando em um projeto de Jquery Mobile e estou com uma duvida, resolvi buscar ajuda a quem entende do assunto.
Vamos lá, estou minha dificuldade é em criar uma função dentro de uma pasta do meu servidor, aonde irei listar todos os dados da tabela PRODUTOS e em seguida estarei dando um echo json_encode para transformar os arquivos em JSON.
Dentro desse arquivo eu preciso criar duas funções, uma para listar os produtos e outra para ler os produtos quando for passado o ID daquele produto.
Exemplos:
Listar Produtos: http://www.imediabrasil.com.br/cursojquerymobile/kwai_produtos.cfc?method=getProdutosListagem&callback=listarProdutos
Filtrar produtos: http://www.imediabrasil.com.br/cursojquerymobile/kwai_produtos.cfc?method=filtrarProduto&codigo=2&callback=?
Observem que as duas funções estão em uma mesma página e que as funções possuem uma estrutura.
Eu já consegui fazer isso, porém, em uma página estou fazendo a listagem e em outro estou fazendo o filtro, um em cada página.
Veja exemplos:
Listar Produtos: http://www.varandasgastronomia.com.br/app_teste/json.php?method=getProdutosListagem&callback=listarProdutos
Filtrar Produtos: http://www.varandasgastronomia.com.br/app_teste/jsonx.php?method=filtrarProduto&codigo=21&callback=?
Porém não está dando certo, creio que é pelo fato de eu não ter feito as funções na mesma página.
Em seguida estou fazendo a chamada com JS.

Deu pra entender a minha dúvida?
Meus códigos:
Listar produtos:
#Código
<?php
// parametros iniciais
$callback = isset($_GET['callback']) ? preg_replace('/[^a-zA-Z0-9$_]/s', '', $_GET['callback']) : false;
header('Content-Type: ' . ($callback ? 'application/javascript' : 'application/json') . ';charset=UTF-8');
header('Access-Control-Allow-Origin: *');
// conexar com banco
$con = mysql_connect('localhost','gastrono_painel','master#01');mysql_select_db('gastrono_painel');
// criar consulta
$produtos = mysql_query("SELECT id_servico, foto_servico, titulo_servico, conteudo_servico FROM servicos");
// criar objeto
$retorno = array();
while ($row = mysql_fetch_object($produtos)) {
$retorno[] = $row;}
// saida
echo ($callback ? $callback . '(' : '') . json_encode($retorno) . ($callback ? ')' : '');
mysql_close($con);
?>

Filtrar produtos:
#Código
<?php
include_once "../config.php";
function filtrarProduto($param) {
$stmt = BD::conn()->prepare('SELECT * FROM `servicos` WHERE id_servico = ?');
$stmt->execute(array($param));
return $stmt->fetch();
}

$param = $_GET['codigo'];
$func = $_GET['method'];
echo "[";
echo json_encode($func($param));
echo "]";
?>

NA INDEX EU FAÇO A CHAMADA DO SCRIPT PARA LER OS PRODUTOS LISTADOS.
#Código<!-- LISTA DE PRODUTOS -->
<script src="http://www.varandasgastronomia.com.br/app_teste/json.php?method=getProdutosListagem&callback=listarProdutos" type="text/javascript"></script>

NO MEU JS EU FAÇO A LEITURA PASSADA PELO SCRIPT E EM SEGUIDA FAÇO A LEITURA DOS DETALHES AONDE EU PASSO OUTRO GETJSON:
#Código
//Efetuando a listagem do produto
function listarProdutos(data) {
var anterior="";
var resposta="";
resposta += '<ul data-role="listview" class="ui-icon-alt" data-filter="true" data-filter-placeholder="Filtrar dados...">'
$.each( data, function( chave, valor) {
if ( anterior != valor.titulo_servico ) {
resposta += '<li data-role="list-divider" data-theme="d">' + valor.titulo_servico + '</li>'
}
anterior = valor.titulo_servico;
resposta += '<li>';
resposta += '<a href="#detalhe" onclick="mostrarDetalhe(' + valor.id_servico + ')">';
resposta += '<img src="http://varandasgastronomia.com.br/upload/images/' + valor.foto_servico + '"/>';
resposta += '<h3>' + valor.titulo_servico + '</h3>';
resposta += '<p>' + valor.conteudo_servico + '</p>';
resposta += '</a>';
resposta += '</li>';
});
resposta += '</ul>'
$('#minhalista').html(resposta);
}
//Mostrando detalhe de produto por produto
function mostrarDetalhe(id) {

$('#detalhe_produto').empty();

$.getJSON('http://www.varandasgastronomia.com.br/app_teste/jsonx.php?method=filtrarProduto&codigo=20&callback=?',
function(data) {
var saida='';
saida += '<img src="http://varandasgastronomia.com.br/upload/images/' + data[0].foto_servico + '" class="imagemdetalhe">';
saida += '<h2>' + data[0].titulo_servico + '</h2>';
saida += '<p>' + data[0].conteudo_servico + '</p>'
$('#detalhe_produto').html(saida);
});
}


SERÁ QUE ALGUÉM PODERIA ME AJUDAR?
ESTOU A UM TEMPO TENTANDO RESOLVER ESTA QUESTÃO E NÃO CONSEGUI.
DESDE JÁ AGRADEÇO A AJUDA DE TODOS.