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.