1

我在这里有一个非常复杂的循环,我想修改它,而实际上并没有像我预期的那样工作。问题是:我的 if 语句 else 条件正在产生垃圾,我真的不知道问题出在哪里

在此处输入图像描述

<div id="container">
    <?php include 'header.php';
    foreach ($vars as $item):



    if (is_array($item['productItems'])):?>

    <div class="product_box">
        <h4>
            <?php echo $item['title']?>
        </h4>

        <?php foreach($item['productItems'] as $products):?>

        <?php foreach($products as $key=>$product):?>


        <div class="product">

            <div class="image_holder">

                <a href="<?php echo $product['image']['medium'];?>" class="preview">
                    <img src="<?php echo $product['image']['small'];?>"
                    alt="gallery thumbnail" title="" />
                </a>


                <?php foreach($product['trackingLinks'] as $key=>$trackinglink): ?>
                <a href="<?php echo $trackinglink[0]['ppc']?>"> <span><?php echo $product['name'];?>
                </span>
                </a>
            </div>

            <h5>
                <?php echo 'Preise:&nbsp;'. $product['price'].' &nbsp;'.$product['currency'];?>
            </h5>
            <span><?php echo 'Versand Kosten:&nbsp;'.$product['shippingCosts'].'&nbsp;EUR';?>
            </span>
            <p>
                <?php echo (substr($product['descriptionLong'], 0,150 )).'<a href="'.$trackinglink[0]['ppc'].'">...mehr</a>';?>
            </p>
            <a class="shopping_button"
                href="<?php echo $trackinglink[0]['ppc']?>">zum Shop</a>



        </div>
<?php endforeach ?>
        <?php endforeach ?>
                <?php endforeach ?>

        <div class="ajax_bar">

            <select id="ajax_call" size="1" name="Weitere Produkte">
                <option value='50'>Weitere Produkte</option>
                <option value='100'>weitere 100</option>
                <option value='150'>weitere 150</option>
            </select>

        </div>

    </div>

    <?php else: ?>


    <div class="text_box">
        <h2>
            <?php echo $item['title'];?>
        </h2>
        <p>
            <?php echo $item['text'];?>
        </p>


    </div>
        <?php endif; ?>
            <?php endforeach; ?>


<?php include 'footer.php';?>

</div>
4

1 回答 1

1

我将在这里做一个疯狂的猜测,并说这是因为你没有使用htmlspecialcharsor来逃避你的输出htmlentities

如果您不确定 for 循环中的内容,请使用这个漂亮的构造在页面上进行调试:

echo '<pre>', htmlspecialchars(print_r($vars, true)), '</pre>';

它还有助于查看页面源代码;这通常会为您的页面布局为何如此混乱提供重要线索。

更新

好,知道了!正因为如此:

<?php else: ?>
<div class="text_box">
    <h2>
        <?php echo $item['title'];?>
    </h2>
    <p>
        <?php echo $item['text'];?>
    </p>

这里$item是一个字符串,$item['title']PHP 将其理解为:)$item[0]的第一个字符$item

于 2012-05-18T07:04:29.090 回答