2016-08-28 101 views
0

我有这个疑问与while循环,其结果在服务器端回送为JSON:未定义jQuery的JSON结果

$sql = mysqli_query($dbc, "SELECT * FROM tienda_prod WHERE prod_activo ='1' ORDER BY prod_fechacreado DESC"); 

$results = array(); 
while($row = mysqli_fetch_array($sql, MYSQLI_ASSOC)){ 

    $results[] = array(
     'id' => $row["prod_id"], // or smth like $row["video_title"] for title 
     'user' => $row["user_id"], 
     'categoria' => $row["cat_id"], 
     'subcategoria' => $row["subcat_id"], 
     'titulo' => $row["prod_titulo"], 
     'descripcion' => $row["prod_descripcion"], 
     'precio' => $row["prod_precio"], 
     'moneda' => $row["prod_moneda"], 
     'condicion' => $row["prod_condicion"], 
     'marca' => $row["prod_marca_id"], 
     'destacado' => $row["prod_destacado"], 
     'envios' => $row["prod_envios"], 
     'permuta' => $row["prod_permuta"], 
     'modelo' => $row["prod_modelo"], 
     'fecha_creado' => $row["prod_fechacreado"], 
     'fecha_moderado' => $row["prod_fechamoderado"], 
     'activo' => $row["prod_activo"] 
    );  


} 
header('Content-Type: application/json'); 


    echo json_encode($results); 

当我运行此脚本只带给我的第一个对象,其余的是未定义。

$.ajax({ 
      url: 'tienda-app/listing.php', 
      type: 'GET', 
      dataType: 'json', 
      //data: , 
      success: function(data){ 


       for (var i = 0; i < data.length; i++) { 


         var data = '' 
         + '<div class="col-xs-6 col-md-4 column productbox">' 
          + '<a href="detalle_producto.php#' + + data[i].id +'">' 
           + '<img src="https://unsplash.it/270/270/?random=4" class="img-responsive">' 
          + '</a>' 
          + '<div class="product-info">' 
          + ' <div class="product-title"><a href="detalle_producto.php#' + + data[i].id +'">' + data[i].titulo + '</a></div>' 
          + '<div class="product-price">' 
          + '<div class="pull-right"><a href="detalle_producto.php#' + + data[i].id +'" class="btn btn-info btn-sm" role="button">Ver</a></div>' 
          + '<div class="pricetext">$'+ data[i].precio + '</div></div>' 
          + '<div class="col-separador-s"></div>' 
          + '</div>' 
         + '</div>' 

        $('#listado_tienda').append(data); 
       } 
      } 
     }); 

我找不出为什么它只带来第一个对象,其余的结果(很多)都是未定义的。

+0

直接接入脚本,那么会发生什么? –

回答

3

您用var data = ''重新定义数据对象。所以改名字。

0

发生这种情况是因为您在第一次循环后将您的数据(响应结果)设置为空。所以改变:

var data = '' 
        + '<div class="col-xs-6 col-md-4 column productbox">' 
         + '<a href="detalle_producto.php#' + + data[i].id +'">' 
          + '<img src="https://unsplash.it/270/270/?random=4" class="img-responsive">' 
         + '</a>' 
         + '<div class="product-info">' 
         + ' <div class="product-title"><a href="detalle_producto.php#' + + data[i].id +'">' + data[i].titulo + '</a></div>' 
         + '<div class="product-price">' 
         + '<div class="pull-right"><a href="detalle_producto.php#' + + data[i].id +'" class="btn btn-info btn-sm" role="button">Ver</a></div>' 
         + '<div class="pricetext">$'+ data[i].precio + '</div></div>' 
         + '<div class="col-separador-s"></div>' 
         + '</div>' 
        + '</div>' 

       $('#listado_tienda').append(data); 

var dataHtml= '' 
        + '<div class="col-xs-6 col-md-4 column productbox">' 
         + '<a href="detalle_producto.php#' + + data[i].id +'">' 
          + '<img src="https://unsplash.it/270/270/?random=4" class="img-responsive">' 
         + '</a>' 
         + '<div class="product-info">' 
         + ' <div class="product-title"><a href="detalle_producto.php#' + + data[i].id +'">' + data[i].titulo + '</a></div>' 
         + '<div class="product-price">' 
         + '<div class="pull-right"><a href="detalle_producto.php#' + + data[i].id +'" class="btn btn-info btn-sm" role="button">Ver</a></div>' 
         + '<div class="pricetext">$'+ data[i].precio + '</div></div>' 
         + '<div class="col-separador-s"></div>' 
         + '</div>' 
        + '</div>' 

       $('#listado_tienda').append(dataHtml);