2016-08-28 64 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);