• User Newbie

    Capire e risolvere un errore per validazione w3c

    Salve a tutti ho un errore che non riesco a risolvere, questo è l'errore:

    document type does not allow element "div" here; missing one of "object", "ins", "del", "map", "button" start-tag
    **
    <p><div class="category-products"
    >
    e questo è il codice:

    **<?php $_productCollection=$this->getLoadedProductCollection() ?>
    **<?php if(!$_productCollection->count()): ?>
    <p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
    <?php else: ?>
    <div class="category-products">
    
    
        <?php // Grid Mode ?>
    
    
        <?php $_collectionSize = $_productCollection->count() ?>
        <?php $_columnCount =4; ?>
        <?php $i=0; foreach ($_productCollection as $_product): ?>
            <?php if ($i++%$_columnCount==0): ?>
            <ul class="products-grid">
            <?php endif ?>
                <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
                    <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(200,200); ?>" width="200" height="200" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" /></a>
                    <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo $this->htmlEscape($_product->getName()) ?></a></h2>
                 
                    <?php if($_product->getRatingSummary()): ?>
                    <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
                    <?php endif; ?>
                    <?php echo $this->getPriceHtml($_product, true) ?>
                    <div class="actions">
                        <?php if($_product->isSaleable()): ?>
                            <button type="button" title="<?php echo $this->__('Aggiungi al carrello') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('<b>Aggiungi al carrello</b>') ?></span></span></button>
                        <?php else: ?>
                            <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
                        <?php endif; ?>
                        <?php if ($this->helper('wishlist')->isAllow() && $this->getAddToCompareUrl($_product)) : ?>
                                            <?php endif; ?>
                    </div>
                </li>
            <?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
            </ul>
            <?php endif ?>
            <?php endforeach ?>
            <script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
    </div>
    
    **<?php endif; ?>**
    ```Qualcuno potrebbe aiutarmi? Ringrazio anticipatamente**

  • User
    1. Controlla che la prima riga del codice sorgente sia <!DOCTYPE html>
    2. Controlla la porzione più in alto del codice, dato che quell'errore sta a significa che hai inserito il <div> all'intero di un elemento inline (tipo <span>). Quindi devi accertarti che prima di aprire <div class="category-products"> tu abbia chiuso tutti gli elementi. Dato che l'errore risulta essere <p><div class="category-products"> significa che c'è un problema nell'if() in PHP dato che dopo il <p> aperto NON dovrebe esserci direttamente <div class="category-products">