Нет необходимости, чтобы PHP распечатывал новый блок CSS и Javascript для каждого элемента. Если вы напишите css и javascript - это хороший способ, то все будет обработано за вас.
Еще одна вещь, которую нужно иметь в виду, заключается в том, что PHP является основным языком шаблонов, поэтому, если вы обнаруживаете, что повторяете большие куски кода, вы, вероятно, ошибаетесь. Вместо этого как то так:
<?php
$variable = "SOme value";
echo "Some very long huge string with <html> tags and stuff plus $variables";
?>
Вы можете сделать что-то подобное, открывая и закрывая теги несколько раз.
<?php $variable = "SOme value"; ?>
Some very long huge string with <html> tags and stuff plus <?php print $variables; ?>
С этим, вот переработанная версия вашего кода.
Кроме того, вместо того, чтобы создавать выходной PHP-файл с пользовательским Javascript с жестко запрограммированными идентификаторами, вам действительно нужно структурировать свой Javascript так, чтобы он вообще не нуждался в ЛЮБОМ из этого, как я сделал. *
<style type='text/css'>
/* The CSS is the same, so just have one class that is used on all the items. */
.empresa-teaser {
width:100%;
background-color: #CCC;
color: #000;
margin-top:10px;
border:1px solid #CCC;
position:relative;
vertical-align:middle;
}
</style>
<script type="text/javascript">
$(function(){
// Hide all of the teasers to start.
$(".empresa-teaser").hide();
// Add a handler for when the show/hide link is clicked.
$(".showhide-empresa-teaser").click(function(){
// When it is clicked, find the next item with the 'empresa-teaser' class
// and show it using a sliding toggle effect.
$(this).nextAll('.empresa-teaser:first').slideToggle(500);
});
});
</script>
<?php foreach ($empresas as $empresa) { ?>
<a href='#' class="showhide-empresa-teaser">
<?php print $empresa['titulo']; ?>
</a>
<br />
<div class="empresa-teaser">TEST</div>
<?php } ?>