Я не могу получить идентификатор Div отображается в цикле в Code Igniter - PullRequest
1 голос
/ 26 марта 2011

У меня есть команда, которая создает цикл:

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

При отображении отображается HTML-код, указанный ниже. Я попытался добавить идентификатор div ниже цикла, так как я хочу создать функцию getElementById(). Тем не менее, он создает цикл выше самостоятельно. Кроме того, я не могу изменить оператор tr. Я фактически выполнил поиск и замену каждого оператора tr в Code Igniter, и он все еще там. Я довольно новичок и буду очень признателен за любые советы, так как это сбивает меня с толку уже три дня.

    <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 голосов
/ 26 марта 2011

Я не думаю, что ваша проблема связана с вашим PHP, я думаю, что это ваш HTML.

Не все ваши теги открытия и закрытия HTML совпадают.У вас есть несколько незамкнутых <tr> элементов, по крайней мере, один неоткрытый <tr>, ваши теги формы не срабатывают, учитывая структуру вашего оператора if / else, и у вас фактически нет открывающего тега <table> илиоткрыв тег <div> в верхней части кода, в то время как у вас есть оба в конце.Div, который вы получаете выше вашего цикла, который вы ожидаете получить в цикле, вероятно, является результатом того, что ваш браузер пытается интерпретировать поврежденную структуру страницы.

Что касается тегов формы, которые я упомянул, убедитесь, чтоЕсли вы используете оператор if для открытия формы, у вас также должно быть условие, которое откроет все необходимые формы, если оператор if оценивается как false.Я думаю, у вас есть элемент формы внутри if, а затем входные данные формы как часть следующего оператора else.

Я упростил ваш опубликованный код и включил комментарии, чтобы попытаться проиллюстрировать это:

    <tbody id="cart_contents">
<?php if(){?>
    <tir><!--what's a 'tir'?, did you mean 'tr'?-->
        <td colspan='8'>
            <div class='warning_message' style='padding:7px;'>
            </div>
        </tr>
    </tr>
<?php }else{
    echo "</tr><tir>";//here you are closing a row that was never opened, and another 'tir'.  
    foreach($cart as $line=>$item){?>
            <td></td>
            <?php if (){ //here you call a form input before the form is created...?>
                <td><?php echo form_input();?></td>
                <?php }else{?>
                 <td></td>
                <?php echo form_hidden(); 
                //this form isn't in a table element, which might act weird?>
            <?php }?>
            <td><?php if() {
                    echo form_hidden();
                }else{
                    echo form_input());
                    //here you have a form input outside of a form if 
                    //the previous if statement evaluates to false.
                }?>
            </td>
            <td></td>
            <?php if(){ }
            else {
                if(){}
                else{}
            }?>
        </td><!--this td was never opened-->
        <td>&nbsp;</td>
        <td></td>
        <td></td>
    </tr><!--this tr was never opened-->
    <tr><td></td></tr>      
  </form><!--I don't believe you can count on your conditional statements to garantee that a form was opened-->
    <?php }
    } ?>
</tbody>
</table> <!--you haven't opened your table in this code-->
</div><!--you havent' opened a div in this code-->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...