PHP для каждого цикла, который применяет разные стили CSS

#php #for-loop

#php #for-цикл

Вопрос:

Я хотел бы выделить ссылку жирным шрифтом, если URL-адрес заканчивается определенным окончанием:

http://url.com/test#style1

http://url.com/test#style2

…и так далее до #style15

Было бы лучше сделать это с помощью PHP или Javascript? Могу ли я включить следующее в цикл, который выполняется через #style1 — #style15?

 <?php
$URL = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

if ($URL == "http://url.com/test#style1") { ?>

<style>.a1 {font-weight:bold;} </style>

<?
}
else if ($URL == "http://url.com/test#style2") { 
?>

<style>.a2 {font-weight:bold;} </style>

<?
}?>
  

Комментарии:

1. PHP никогда не видит фрагмент, поэтому вам придется делать это с помощью JavaScript

Ответ №1:

Вы не можете получить доступ к хэшу в php, например, как здесь «#style1» из URL, для этого у вас есть javascript.

Вот решение в Javascript:

 <script>
if (window.location.hash) {
    var hash = window.location.hash.substring(1);
    if (hash.length != 0) { 
      for(i=1; i<=15; i  ){
          if(("style" i) == hash){
             /* Used jQuery here */
             $(".a" i).css("font-weight", "bold");
          }
      }
    }
}
</script>
  

Ответ №2:

PHP не имеет доступа к части или URL за хэшем (#), поэтому единственным способом является JavaScript.

Вы можете получить доступ к этой части URL с помощью location.hash .

Ответ №3:

Я предлагаю вам использовать CSS для применения стилей. Он может легко считывать конечные символы атрибута an (например, $= ) и применять соответствующий стиль без использования PHP или Javascript.

 a[href$="1"] { font-weight:bold; }