|
|
|
| Здравствуйте!
Нашел вот такой скрипт:
<script language="javascript">
function getObj(id) {
if (document.getElementById) {
return document.getElementById(id);
}
else if (document.all) {
return document.all[id];
}
else if (document.layers) {
return document.layers[id];
}
}
function showInfo (id) {
if (getObj(id).style.display == 'block') {
getObj(id).style.display = 'none';
}
else getObj(id).style.display = 'block';
placeFooter ();
}
</script>
<?php
include('config.php');
$cat=(int)$_GET['Cat2'];
$q = mysql_query("SELECT * FROM catalogs ORDER BY name") or die (mysql_error());
while ($row = mysql_fetch_array($q)) {
echo "";
echo "<a href=\"javascript:open_window('index.php?id=$row[$cat]',350,180);\">$row[1]</a>";
echo "<font color=red>[</font><a href='#' onClick=\"showInfo('sh_$row[$cat]')\">>=></a><font color=red>]<br></font>\n";
?>
</td><td width="75%" height="220" valign="top">
<?php
echo "<div style='display:none;' id=\"sh_".$row[$cat]."\">";
$q2 = mysql_query("SELECT * FROM products WHERE id_catalog=$row[$cat] ORDER BY name") or die (mysql_error());
if ($q2 && mysql_num_rows($q2)>0 )
{
while ($row2 = mysql_fetch_assoc($q2))
{
echo "<br><center>\n<table border=1 width=426>\n<tr>\n<td width=400>".$row2['name']."</td>\n</tr>\n</table>\n</center>";
}
}
else echo "<center>нет товаров</center>";
echo "</div>";
}
?>
|
но там один нюанс - если кликаешь по рубрике она раскрывается, но если по другой, первая не сворачивается | |
|
|
|
|
|
|
|
для: ronin
(17.10.2008 в 11:18)
| | перед показом слоя, по которому кликнули и id которого вы знаете, надо в цикле скрыть все слои. это проще, чем искать открытые, id которых вы не знаете.
PS чтоб было понятнее задание, помещайте код, который выдает браузер (html), ваши php-вставки никому не нужны. | |
|
|
|
|
|
|
|
для: elenaki
(17.10.2008 в 13:16)
| | Я извиняюсь, плохо представляю как это сделать. Тыкните пожалуйста пальцем. У меня проблемы с явой-скриптами.. | |
|
|
|
|
|
|
|
для: ronin
(17.10.2008 в 13:22)
| | запустите ваш скрипт с локалхоста. вы видите меню? а я нет! у меня нет вашей базы. чтоб я увидела, ткните
правой кнопкой и выберите "View source". скопируйте все и поместите сюда. желательно только меню. | |
|
|
|
|
|
|
|
для: elenaki
(17.10.2008 в 13:32)
| |
<SCRIPT language=javascript>
function getObj(id) {
if (document.getElementById) {
return document.getElementById(id);
}
else if (document.all) {
return document.all[id];
}
else if (document.layers) {
return document.layers[id];
}
}
function showInfo (id) {
if (getObj(id).style.display == 'block') {
getObj(id).style.display = 'none';
}
else getObj(id).style.display = 'block';
placeFooter ();
}
</SCRIPT>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY>
<A href="javascript:open_window('index.php?id=2',350,180);">Города и
замки</A><FONT color=red>[</FONT>
<A onclick="showInfo('sh_2')"
href="http://localhost/haltura/efos/menu.php#">>=></A><FONT
color=red>]<BR></FONT></TD><TD valign="top" height="220" width="75%">
<DIV id=sh_2 style="DISPLAY: none"><BR>
<CENTER>
<TABLE width=426 border=1>
<TBODY>
<TR>
<TD width=400>Киев</TD></TR></TBODY></TABLE></CENTER><BR>
<CENTER>
<TABLE width=426 border=1>
<TBODY>
<TR>
<TD width=400>Львов</TD></TR></TBODY></TABLE></CENTER><BR>
<CENTER>
<TABLE width=426 border=1>
<TBODY>
<TR>
<TD width=400>Мукачево</TD></TR></TBODY></TABLE></CENTER><BR>
<CENTER>
<TABLE width=426 border=1>
<TBODY>
<TR>
<TD width=400>Ужгород</TD></TR></TBODY></TABLE></CENTER></DIV><A
href="javascript:open_window('index.php?id=1',350,180);">Здравницы и
курорты</A><FONT color=red>[</FONT><A onclick="showInfo('sh_1')"
href="http://localhost/haltura/efos/menu.php#">>=></A><FONT
color=red>]<BR></FONT></TD><TD valign="top" height="220" width="75%">
<DIV id=sh_1 style="DISPLAY: none"><BR>
<CENTER>
<TABLE width=426 border=1>
<TBODY>
<TR>
<TD width=400>Трускавец</TD></TR></TBODY></TABLE></CENTER></DIV>
|
| |
|
|
|
|
|
|
|
для: ronin
(17.10.2008 в 13:41)
| |
function showInfo (id) {
for (i=1; i<3; i++) {
getObj("sh_"+i).style.display = "none"
}
(getObj(id).style.display == "block") ? getObj(id).style.display = "none" : getObj(id).style.display = "block";
}
|
вместо 3 в цикле подставляете свое реальное число пунктов меню +1 (т.к. нумерация слоев у вас с sh_1 начата).
в php это число известно. почему-то не закрывается пункт по второму клику на нем же. странно. раньше работало.
сейчас я уже убегаю. посмотрю вечером. или кто-тто еще поможет. | |
|
|
|
|
|
|
|
для: elenaki
(17.10.2008 в 13:58)
| | Спасибо большое! все работает.
в строчку всавил php:
for (i=1; i<<? echo $count1?>; i++) {
|
и сам php:
$c=count($row);
$count1=$c+1;
|
Еще вопрос:
echo "<a href=\"javascript:open_window('index.php?id=$row[$cat]',350,180);\">$row[1]</a>";
echo "<font color=red>[</font><a href='#' onClick=\"showInfo('sh_$row[$cat]')\">>=></a><font color=red>]<br></font>\n";
|
как мне сделать одну ссылку, а то здесь 2 ссылки и механизм заложен во вторую. | |
|
|
|
|
|
|
|
для: ronin
(17.10.2008 в 14:25)
| | помогите объединить обе ссылки
<li class=\"line-2\"><a href=\"javascript:open_window('index.php?id=$row[$cat]',350,180);\"></a>";
<a href='#' onClick=\"showInfo('sh_$row[$cat]')\">Ссылка</a>";
|
| |
|
|
|
|
|
|
|
для: ronin
(18.10.2008 в 12:42)
| | не нужна тут вторая ссылка!
вместо # ставите свой URL. я убрала его, что он не мешал тестировать... | |
|
|
|
|
|
|
|
для: elenaki
(18.10.2008 в 16:39)
| | я их так объединяю(только больно не бейте!):
<li class=\"line-2\"><a href=\"javascript:open_window('index.php?id=$row[$cat]',350,180); onClick=\"showInfo('sh_$row[$cat]')\">$row[1]</a>
|
не работает.
плюс в коде php я начудил:
вместо:
$c=count($row);
$count1=$c+1;
|
нужно читать как
$count1=count($row);
$count1++;
|
:) | |
|
|
|