Php 用于在布局isn';t工作不正常

Php 用于在布局isn';t工作不正常,php,jquery,html,css,joomla3.0,Php,Jquery,Html,Css,Joomla3.0,运行Joomla的网站有一个针对不同产品类别的模板布局。在本例中,我们正在查看产品类别a的布局。此产品类别布局应以每行3个产品的网格来组织产品 PHP/Jquery代码获取类别的产品,然后有逻辑将产品分配给一个“subrow”类,直到其中有3个产品,然后创建下一个subrow并将其分配给该subrow。我不是一个PHP开发人员,所以我想得到一些意见 问题: 过去只有6种产品在这个类别下展出,这构成了一个完美的3x2网格。两个子程序,每个子程序中有三个产品。这很好。 添加了第7个产品,并创建了

运行Joomla的网站有一个针对不同产品类别的模板布局。在本例中,我们正在查看产品类别a的布局。此产品类别布局应以每行3个产品的网格来组织产品

PHP/Jquery代码获取类别的产品,然后有逻辑将产品分配给一个“subrow”类,直到其中有3个产品,然后创建下一个subrow并将其分配给该subrow。我不是一个PHP开发人员,所以我想得到一些意见

问题:

  • 过去只有6种产品在这个类别下展出,这构成了一个完美的3x2网格。两个子程序,每个子程序中有三个产品。这很好。
  • 添加了第7个产品,并创建了一个3x3网格,第7个产品是第一个位置第三行的唯一产品。这在视觉上显示为OK,除了在HTML代码中,它在第二个子程序中显示了两个子程序和四个产品。它应该是三个子程序,第三个子程序中有一个产品。
  • 添加了第8个产品,创建了3x4网格,第8个产品是第一个位置第四行的唯一产品。在HTML代码中,它显示了三个子程序,第二个子程序中有四个产品,第三个子程序中有一个产品。这不好。它应该被添加到第三行的第二个位置。
这是添加了第8个产品的HTML:

下面是该逻辑的PHP/Jquery代码是否有人发现任何明显的问题,从而导致这不符合每行3种产品的模式?

callAPI(“productlines/by/subcategory”)
.完成(功能(数据){
var=数据[‘产品类别A’]
var maxPerRow=3;
var matMap={};
对于(变量i=0;i<0.length;i++){
如果(i%2==0){
jQuery(“”)
.addClass('material-row-'+i)
}
var matgroup=jQuery('.material rows');
var subrow=matgroup.children(“.subrow”).last();
if(subrow.length==0){subrow=jQuery(“”.addClass(“”)subrow“.attr(“”)数据行,0).appendTo(matgroup);}
如果(!matMap[0])matMap[0]=0;
if(++matMap[0]>maxPerRow){
//console.log(“subrow”,subrow[0],“已满!正在生成新行”);
subgrow=jQuery(“”.addClass(“subrow”).appendTo(matgroup).attr(“数据行”),1+parseInt(subrow.attr(“数据行”));
matMap[0]=0;
}
popProducts(造型[i],副线[0])
}
});

代码中的问题是,当您追加新行时,其中将有一个元素,因为追加元素的函数在后面调用,但您在计数器(
matMap
)中设置为0个元素,但它应该是1(
matMap[0]=1;


就在我眼皮底下……谢谢!那很好用。我很欣赏最新的代码,我会把它转发给大家。
if(++matMap[0] > maxPerRow){
  // console.log("subrow",subrow[0],"is full! making new row");
  subrow = jQuery("<div/>").addClass("subrow").appendTo(matgroup).attr("data-row",1+parseInt(subrow.attr("data-row")));
  matMap[0]=1;
}