Потому что каждый div имеет одинаковый идентификатор. Вам нужно создать уникальные идентификаторы для каждого DIV, чтобы показать или скрыть, т.е. frDocViewer1, frDocViewer2 и т. д.
Используйте переменную $ count, чтобы вывести ее значение на идентификатор, поскольку оно будет увеличиваться на 1 для каждой итерации цикла.
echo "
<image src='utube.gif' onclick='HideFrame()' />
<div id='frDocViewer_{$count}'>
$iframe
</div>
";
Тогда вам просто нужно убедиться, что у вас есть соответствующий Javascript для каждого из этих DIV. Я бы отправил идентификатор в функцию javascript, используя тэг onclick.
for ($count=1; $count<= $lastid ; $count++) {
$iframe = mysql_query ("SELECT * FROM embed WHERE id=$count ");
$iframe = mysql_fetch_assoc($iframe);
$iframe = $iframe['url'];
echo "
<image src='utube.gif' onclick='HideFrame({$count})' />
<div id='frDocViewer_{$count}' class='frDocViewer'>
$iframe
</div>
";
}
И тогда код JavaScript должен выглядеть примерно так:
var old_element = null;
function HideFrame(id) {
var fr = document.getElementById("frDocViewer_" + id);
if(fr != old_element)
{
fr.style.display = "block"
if(old_element != null) old_element.style.display = "hide";
old_element = fr;
}
}
Затем, наконец, вам нужно изменить свой CSS, чтобы сделать frDocViewer классом, а не уникальным стилем. Обратите внимание, что в строке эхо-кода PHP я добавил новый атрибут класса в DIV
<style type="text/css">
.frDocViewer {
width:70%;
height:50%;
display:none;
}
</style>
PS: Этот код может на самом деле не компилироваться, это всего лишь приблизительное руководство.