我无法在Code Igniter中循环显示div id

时间:2011-03-25 21:37:32

标签: php javascript html forms codeigniter

我有一个创建循环的命令:

foreach($cart as $line=>$item). 

显示时,它会显示下面引用的HTML。我试图在循环下面添加一个div id,因为我想创建一个getElementById()函数。但是,它会在上面创建一个循环。另外,我无法更改tr语句。我实际上已经在Code Igniter中的每个tr语句上进行了搜索和替换,它仍然存在。我是一个相当新手,非常感谢任何建议,因为这已经困扰了我三天了。

    <tbody id="cart_contents">
<?php
if(count($cart)==0)
{
?>

<tir><td colspan='8'>
<div class='warning_message' style='padding:7px;'><?php echo $this->lang->line('sales_no_items_in_cart'); ?></div>
</tr></tr>



    <?php
}
else
{
    echo "</tr><tir>";

        foreach($cart as $line=>$item)
    {


    ?>


        <td id = " <?php echo $item['name'];?>" style="align:center;" ><?php echo $item['name']; ?></td>



        <?php if ($items_module_allowed)
        {

        ?>
            <td><?php echo form_input(array('name'=>'price','value'=>$item['price'],'size'=>'6'));?></td>
        <?php
        }
        else
        {
        ?>
            <td><?php echo $item['price']; ?></td>
            <?php echo form_hidden('price',$item['price']); ?>
        <?php
        }
        ?>

        <td>
        <?php
            if($item['is_serialized']==1)
            {
                echo $item['quantity'];
                echo form_hidden('quantity',$item['quantity']);
            }
            else
            {
                echo form_input(array('name'=>'quantity','value'=>$item['quantity'],'size'=>'2'));
            }
        ?>
        </td>

        <td><?php echo to_currency($item['price']*$item['quantity']-$item['price']*$item['quantity']*$item['discount']/100); ?></td>

        <?php
            if($item['allow_alt_description']==1)
            {
            }
            else
            {
                if ($item['description']!='')
                {
                }
                else
                {
                }
            }
        ?>
        </td>
        <td>&nbsp;</td>
        <td style="color:#2F4F4F";>
        <?php
            if($item['is_serialized']==1)
            {
            }
        ?>
        </td>
        <td colspan=3 style="text-align:left;">
        <?php
            if($item['is_serialized']==1)
            {
            }
        ?>
        </td>


        </tr>
        <tr style="height:3px">
        <td colspan=8 style="background-color:white"> </td>
        </tr>       </form>
    <?php
    }


}
?>
</tbody>
</table>        </div>

这是原始循环的HTML输出。

<tr><td id=" test" style="align:center;">test</td>

    <td><input type="text" name="price" value="150.00" size="6"></td>

    <td>
        etc...
    </td>


</tr>

1 个答案:

答案 0 :(得分:0)

我不相信你的问题与你的PHP有关,我认为这是你的HTML。

您的html开始和结束标记并非全部匹配。你有几个未公开的<tr>元素,至少有一个未打开的<tr>,你的表单标签在你的if / else语句结构中没有用,你实际上没有开放{{ 1}}标记或代码顶部的开始<table>标记,而最后两个标记。你在循环中出现的循环中的div可能是浏览器试图解释破坏的页面结构的结果。

就我提到的表单标记而言,请确保如果使用if语句打开表单,那么如果if语句的计算结果为false,则还必须具有打开任何必需表单的条件。我认为你在if中有一个表单元素,然后将表单输入作为下一个else语句的一部分。

我简化了您发布的代码并添加了评论以尝试说明这一点:

<div>