我在服务器端有一个带有while循环的查询,结果回显为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 = ''
重新定义数据对象。所以改名。
答案 1 :(得分: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);