2014-01-14 91 views
0

在Magento的單一產品視圖頁面我使用foreach循環與echo()功能如何添加逗號foreach循環

<?php $categories = $_product->getCategoryIds(); ?> 
<?php foreach($categories as $k => $_category_id): ?> 
    <?php $_category = Mage::getModel('catalog/category')->load($_category_id) ?> 
     <a href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName() ?></a> 
<?php endforeach; ?> 

但是當一個產品是顯示當前產品的類別名稱(S)分配給多個類別的結果是類別名稱類別名稱類別名稱格式不正確。除了最後一個類別之外,是否有任何方法可以通過使用implode()函數來添加逗號(例如:類別名稱,類別名稱,類別名稱)?

回答

0

試試這個。沒有內疚。只要檢查你是否已經打印了第一類。如果是這樣,則在每個其他類別之前添加一個逗號。

<?php $categories = $_product->getCategoryIds(); ?> 
<?php $firstSet = false;?> 
<?php foreach($categories as $k => $_category_id): ?> 
    <?php $_category = Mage::getModel('catalog/category')->load($_category_id) ?> 
    <?php if ($firstSet):?>, <?php endif;?><a href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName() ?></a> 
    <?php $firstSet = true;?> 
<?php endforeach; ?> 
+0

你的建議的工作。有什麼方法可以刪除類別名稱和逗號(,)之間的空格嗎?例如**類別名稱,類別名稱**到**類別名稱,類別名稱** –

+0

@KevinS。是。查看我的更新。只是將if語句移動到與'a'元素相同的行上。 – Marius

+0

我曾試過,但由於某種原因,它不工作。可能是在Magento中做的事。這裏是我的最終代碼'<?php $ categories = $ _product-> getCategoryIds(); ?><?php $ firstSet = false;?><?php foreach($ categories as $ k => $ _category_id):?><?php $ _category = Mage :: getModel('catalog/category') - > load ($ _category_id)?><?php if($ firstSet):?>,<?php endif;?>getName() ?><?php $ firstSet = true;?><?php endforeach; ?>' –

0

這很簡單。因爲你得到的類別名稱,請試試這個:

<?php echo $_category->getName().", "; ?> 
0
<?php $categories = $_product->getCategoryIds(); ?> 
<?php foreach($categories as $k => $_category_id): ?> 
<?php $_category = Mage::getModel('catalog/category')->load($_category_id) ?> 
    <a href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName()."," ?> 

</a> 
<?php endforeach; ?> 

Note : concatenate , using . 
0
<?php 
    $categories = $_product->getCategoryIds(); 
    foreach($categories as $k => $_category_id){ 
     $_category = Mage::getModel('catalog/category')->load($_category_id); 
     $category_str = '<a href="' . $_category->getUrl() . '">' . $_category->getName() . '</a>, '; 
    } 
?> 

<?php echo trim($category_str, ', ') ?>