Как применить if-else для класса css в коде php? - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь применить условие if в классе начальной загрузки с переменной php, но оно не работает. Моя переменная получает результат. Ниже мое тело, где я применяю код php:

<div class="<?php '#count_rows#' <= '2')
        { 
            echo 'middle_menu';
        } 
    else 
        { 
            echo 'middle_menu1';
        } ?>">
        <table class="table_4">
            <thead>
                <tr>
                    <th class="th_11">Quantity</th>
                </tr>
            </thead>
            <tbody>
                #TABLE_BODY#
            </tbody>
        </table>
</div>

Ниже приведены мои 2 класса CSS:

.middle_menu
    {
        margin-top: 40px;       
        padding-bottom: 200px;
    }
.middle_menu1
    {
        margin-top: 40px;
    }

Я получаю свою переменную с другой страницы, где я устанавливаю этот тип переменной открытия и закрытия с помощью #. Ниже приведен мой код для вашей справки, но я не думаю, что это проблема для меня, потому что я проверяю эту переменную # count_rows # с print_r на моей текущей странице, и она показывает мне правильный результат.

foreach ($form_field as $key => $value){
    $htmlContent = str_replace('#'.$key.'#', $value, $htmlContent);
}

Ответы [ 2 ]

0 голосов
/ 10 мая 2018
<?php $className = $count_rows <= 2 ? 'middle_menu' : 'middle_menu1'; ?>
<div class="<?php echo $className; ?>" />

Вы можете создать test.php, затем запустить php test.php, и вы должны увидеть результат

<?php

// $count_rows = 1;
$count_rows = 3;
$className = $count_rows <= 2 ? 'middle_menu' : 'middle_menu1';
echo "<div class=\"$className\"/>\n";
0 голосов
/ 10 мая 2018
 <div class="<?php '#count_rows#' <= '2')

Вам не хватает здесь ключевого слова, а также некоторых скобок (что должно привести к фатальной синтаксической ошибке). Также вы сравниваете две разные строки литералов - наверняка, один из терминов должен быть переменной PHP?

Вы не можете прочитать материал, который вы ранее записали в выходной поток - вы путаете то, что происходит в HTML, CSS и PHP.

Я думаю, вы имеете в виду ...

 <div class="<?php if ($form_fields['count_rows'] <= '2')

Сравнение числа путем приведения его к строке довольно опасно.

Лично я бы сделал это:

 <div class="<?php echo (2 <= $form_fields['count_rows'])
        ? 'middle_menu' : 'middle_menu1'; ?>">

Поскольку вы не упомянули, что сценарий взорвался вваше лицо, я подозреваю, что может быть много других проблем.

 foreach ($form_field as $key => $value){
   $htmlContent = str_replace('#'.$key.'#', $value, $htmlContent);
 }

Это очень неэффективно.Рассмотрим:

 $find=array_keys($form_field);
 foreach ($find as $index=>$term) {
     $find[$index]='#' . $term . '#';
 }
 $htmlContent = str_replace($find, $form_feld, $htmlContent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...