2011-01-09 1 views
0

Мне нужно добавить идентификатор к ли, если условие выполнено. Я сделал что-то вроде этого ранее:Как добавить идентификатор к элементу меню, если выполнено условие

if ($school == $array[1]) 
{ 
echo " id=\"current\""; 
} 

Это в основном следует добавить идентификатор «текущий», если $ школа равна $ массив [1], но я не знаю, как это сделать, так как это PHP внутри HTML внутри PHP и У меня нет большого опыта работы с PHP, поэтому я немного потерян.

Здесь я хочу добавить:

<?php 
    if($array[1] != "") { echo '<li class="menu-item menu-item-type-post_type menu-item-10">' . 
    '<a href="http://chusmix.com/?s=' . $city . '++++' . str_replace(" ", "+", $array[1]) . '">' . 
    '' . $array[1] . '' . 
    '</a>' . 
    '</li>'; 
    } 
    ?> 

Спасибо за любую помощь, информацию и т.д.

ответ

3

Ваш код в хороший способ:

<?php if($array[1] != ""): ?> 
    <li id="<?php echo ($school == $array[1] ? 'current' : ''); ?>" class="menu-item menu-item-type-post_type menu-item-10"> 
     <a href="http://chusmix.com/?s=<?php echo $city . '++++' . str_replace(' ', '+', $array[1]); ?>"> 
      <?php echo $array[1]; ?> 
     </a> 
    </li> 
<?php endif; ?> 

Но я бы уменьшить (или, по крайней мере, уменьшить длину, menu-item-type-post_type представляется непрактичным, если он не сгенерирован автоматически) и добавьте класс current вместо идентификатора.

Этот код использует alternative syntax for control structures и ternary opertor.

p.s: Я не уверен на 100%, как обрабатывается пустой идентификатор, я думаю, что это просто игнорируется. Если это вызывает проблемы, вы можете также сделать

<li <?php echo ($school == $array[1] ? 'id="current"' : ''); ?> ... 
+0

Я мог бы это сделать! Вы очень хороший человек, очень хороший человек – lisovaccaro

0

alternative syntax является вашим другом. Это помогает минимизировать эхо.

<?php if($array[1] != ""): ?> 
    <li class="menu-item menu-item-type-post_type menu-item-10"<?php if ($school == $array[1]): ?>id="current"<?php endif; ?>> 
    <a href="http://chusmix.com/?s=<?php echo $city . '++++' . str_replace(" ", "+", $array[1]); ?>"><?php echo $array[1]; ?></a> 
    </li> 
<?php endif; ?> 
Смежные вопросы