Foros del Web » Programando para Internet » Javascript »

Filtrando datos json

Estas en el tema de Filtrando datos json en el foro de Javascript en Foros del Web. Hola, hoy os escribo por primera vez aunque ando por aquí de vez en cuando. Estoy haciendo una webapp en la que json recibe datos ...
  #1 (permalink)  
Antiguo 12/12/2012, 04:47
 
Fecha de Ingreso: diciembre-2012
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Filtrando datos json

Hola, hoy os escribo por primera vez aunque ando por aquí de vez en cuando.

Estoy haciendo una webapp en la que json recibe datos de php-mysql.

Tengo el esquema básico de artículos y familias de artículos para que se escoja una familia y aparezcan los artículos de esa familia.

El tema es que cuando pincho en la familia me reconoce donde he pinchado y va a artículos para filtrarlo. PERO en vez de usarme sólo la familia donde he pinchado me añade al filtro todas las familias hacia abajo desde donde he pinchado.
por ejemplo si hay 4 familias y pincho en la segunda me filtrará mostrándome los articulos de las familias 2,3 y 4.

Sabrían decirme donde está el error?

Os pongo el código que uso en las familias:

Código:
$.ajax({
   type:'GET',
   url:'familias_encodeflex.php',
   dataType:'json',
   success: function(data){
      $.each(data, function(index){
         var id_familia = data[index].id_familia;
         var familia = data[index].familia;
         var foto = data[index].foto;
         $("#listadofamilias").append('<li>'+'<a href="#articulos">'+'<img src="img/articulos/'+foto+'"/>'+'<h3>'+familia+'<input name="id_varfam" type="hidden" id="varfami" value="'+id_familia+'"></h3>'+'</a></li>');
         $('#listadofamilias li').on('click', function(){
            $id_fam = id_familia;
                 articulos($id_fam);


         });
      })
   $('#listadofamilias').listview('refresh');
   }
   

});
y el que uso en los artículos:

Código:
function articulos(id){
$.ajax({
   type:'GET',
   url:'articulos_encodeflex.php?varfami=' + id,
   dataType:'json',
   success: function(data){
      $.each(data, function(index2){
         var id_articulo = data[index2].id_articulo;
         var articulo = data[index2].articulo;
         var precio = data[index2].precio;
         var familia = data[index2].familia;
         var foto = data[index2].foto;
         var descripcion = data[index2].descripcion;
         $("#listadoarticulos").append('<li>'+'<a class="viewItem" href="#detalle">'+'<img src="img/articulos/'+foto+'"/>'+'<h3>'+familia+articulo+'<span class="izqper">'+precio+' €</span>'+'</h3>'+'<input name="id_varart" type="hidden" value="'+id_articulo+'"><a  href="#carrito"  data-theme="e" data-icon="plus" data-rel="dialog" data-transition="slideup">'+'</li>');
         
         });
      })
   $('#listadoarticulos').listview('refresh');
   }
   

});
}
Supongo que es una tontería, en particular creo que habría que añadirle la función articulos al append pero estoy dándole vueltas al asunto y no soy capaz.
Sabeis como solucionarlo?

muchas gracias
  #2 (permalink)  
Antiguo 12/12/2012, 08:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Filtrando datos json

Es más probable que el problema lo tengas en el servidor, ya que es allí donde se genera el JSON.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 12/12/2012, 10:15
 
Fecha de Ingreso: diciembre-2012
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Filtrando datos json

Cita:
Iniciado por David Ver Mensaje
Es más probable que el problema lo tengas en el servidor, ya que es allí donde se genera el JSON.
Este el el php del que tira los datos de articulos:
Código PHP:
// Connect to MySQL database
mysql_connect('localhost''xxxx''xxxxx');
mysql_select_db('xxxxx');
$page 1// The current page
$sortname 'id_articulo'// Sort column
$sortorder 'asc'// Sort order
$qtype ''// Search column
$query ''// Search string
// Get posted data
if (isset($_POST['page'])) {
        
$page mysql_real_escape_string($_POST['page']);
}
if (isset(
$_POST['sortname'])) {
        
$sortname mysql_real_escape_string($_POST['sortname']);
}
if (isset(
$_POST['sortorder'])) {
        
$sortorder mysql_real_escape_string($_POST['sortorder']);
}
if (isset(
$_POST['qtype'])) {
        
$qtype mysql_real_escape_string($_POST['qtype']);
}
if (isset(
$_POST['query'])) {
        
$query mysql_real_escape_string($_POST['query']);
}
if (isset(
$_POST['rp'])) {
        
$rp mysql_real_escape_string($_POST['rp']);
}

// Return JSON data
$fami $_GET['varfami'];
mysql_set_charset('utf8');
$sql "SELECT * FROM articulos WHERE articulos.familia=$fami
"
;
$results mysql_query($sql);
while (
$row mysql_fetch_assoc($results)) {
$data[] = array(
'id_articulo' => $row['id_articulo'],'articulo' => $row['articulo'],'precio' => $row['precio'],'familia' => $row['familia'],'proveedor' => $row['proveedor'],'foto' => $row['foto'],'impuestos' => $row['impuestos'],'descripcion' => $row['descripcion']);
}
header('Content-type:application/json');

echo 
json_encode($data); 

Etiquetas: ajax, input, js, json, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:13.