|
|
|
| подскажите как сделать так чтобы при нажатии на каждую ссылку открывалось в соседнем столбце соот-ая надпись
<script type="text/javascript">
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
for (var i = 1; i<=10; i++)
{
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
if (d) {d.style.display='block';}
}
//-->
function showPage(numPage) {
var curPage = 0;
while (1) {
curPage ++;
var divElem = document.getElementById("page" + curPage);
if (divElem == null)
break;
divElem.style.display = (curPage == numPage) ? "block" : "none";
}
return false;
}
</script>
.......
<?
$q=mysql_query("select * from table",$db);
if(!$q) {echo "error";}
echo "<table width='100%' border='0'><tr>";
while($tmp = mysql_fetch_array($q))
{ echo"<td width='311' bgcolor='#AAC3DA' valign='top'>
<a href='#' onclick='return showPage(1);'>".$tmp1['pole1'].":</a><br></td>";
echo"<td width='70%' ' valign='top'>";
echo "<div id='page1' style='display:none;'>
<br><font color='#3366CC'>текст ".$tmp1['pole2']."</font>
</div> </td>";
}
echo "</tr></table>";
?>
|
всё выводится , но ссылка работает тока первая. скажите как нужно поменять page1, чтобы срабатывала каждая. | |
|
|
|
|
|
|
|
для: lilu
(09.10.2007 в 15:26)
| |
<head>
<script type="text/javascript">
var curPage = 1;
function showPage(numPage) {
document.getElementById("page" + curPage).style.display = "none";
document.getElementById("page" + numPage).style.display = "block";
curPage = numPage;
return false;
}
</script>
</head>
<body>
<table width='100%' border='0'><tr>
<td width='311' bgcolor='#AAC3DA' valign='top'>
<a href='#' onclick='return showPage(1);'>P1</a></td>
<td width='70%' ' valign='top'>
<div id='page1' style='display:none;'>pole1<div></td>
</tr>
<tr>
<td width='311' bgcolor='#AAC3DA' valign='top'>
<a href='#' onclick='return showPage(2);'>P2</a></td>
<td width='70%' ' valign='top'>
<div id='page2' style='display:none;'>pole2<div></td>
</tr>
<tr>
<td width='311' bgcolor='#AAC3DA' valign='top'>
<a href='#' onclick='return showPage(3);'>P3</a></td>
<td width='70%' ' valign='top'>
<div id='page3' style='display:none;'>pole3<div></td>
</tr>
</table>
</body>
|
Если я вас только правильно понял. | |
|
|
|
|
|
|
|
для: sim5
(09.10.2007 в 15:52)
| | не совсем правильно!
у меня с помощью цикла в первом поле таблицы выводится из базы текст в виде ссылок:
поле1.1
поле1.2
поле1.3
во втором столбце должен выводится соотв-ий текст, например, при нажатии на ссылку
поле1.2 на экране должно появится
<table><tr>
<td>
поле 1.1<br> поле1.2<br>
поле1.3<br>
</td>
<td> нажата вторая ссылка </td></tr></table>
|
| |
|
|
|
|
|
|
|
для: lilu
(09.10.2007 в 16:17)
| | JS-код будет у вас работать, подставьте только свои значения в него и в DIV-ы. Что там у вас должно стоять я ведь не знаю. Относительно РНР части, то у вас не правильно:
<?
//вот что у вас будет массивом после запроса - $tmp
while($tmp = mysql_fetch_array($q))
//а в цикле обращаетесь к $tmp1
<a href='#' onclick='return showPage(1);'>".$tmp1['pole1']."
//далее, елси вы динамически формируете меню (или что это у вас),
//то надо навеное как-то прописывать и аргумент передаваемый в функциию
showPage(вот здесь)
//а у вас этого не происходит
//тоже самое и с Id для контейнеров.
|
| |
|
|
|
|
|
|
|
для: sim5
(09.10.2007 в 16:28)
| | прошу прощения, торопилась и вот здесь
while($tmp1 = mysql_fetch_array($q)) // единичку пропустила
<a href='#' onclick='return showPage(1);'>".$tmp1['pole1']."
>//далее, елси вы динамически формируете меню (или что это у вас),
>//то надо навеное как-то прописывать и аргумент передаваемый в функциию
>showPage(вот здесь)
>//а у вас этого не происходит
>//тоже самое и с Id для контейнеров.
|
вот про это я и спрашиваю
и что нужно в функцию подставлять | |
|
|
|
|
|
|
|
для: lilu
(09.10.2007 в 16:44)
| | Не в функцию, а как аргумент для функции. Номер, которым вы нумеруете ссылки и DIV-ы. Так как у вас записано, то все ссылки будут передавать аргумент 1, и все DIV будут иметь id равное page1.
Укажите до цикла переменную $a = 1, например, и подставляйте ее:
showPage($a); - как аргумент
id="page".$a - для указания id.
Затем увеличивайте значение - $a++ (при проходе цикла) | |
|
|
|
|
|
|
|
для: sim5
(09.10.2007 в 16:52)
| | вот мой код: $a увеличивается, но showPage отрабатывает только showPage(1) для всех ссылок...
<? $q=mysql_query("select * from table1",$db);
if(!$q) {echo "error";}
echo "<table border='1' width='93%' valign='top'>";
$a=1;
while($tmp1 = mysql_fetch_array($q))
{ echo "<tr>";
echo "<td width='311' bgcolor='#AAC3DA' valign='top'>".$tmp1['pole1']."<br>";
echo "<a href='#' onclick='return showPage($a);'>".$tmp1['pole5'].":</a><br></td>";
echo "<td width='69%' background='map.jpg' valign='top'><div id=page".$a." style='display:none;'>
<br><font color='#3366CC'>текст ".$tmp1['pole6']."</font>
</div> </td>";
echo "</tr>"; $a++; }
echo "</table>";
}?>
|
И ещё т.к. все данные выводятся в цикле, ну никак не получается чтобы в одном столбце выводились сами ссылки echo "<a href='#' onclick='return showPage($a);'>".$tmp1['pole5'].":</a><br>"
а в другом результат нажатия каждой (собственно сам div) | |
|
|
|
|
|
|
|
для: lilu
(10.10.2007 в 11:18)
| | Минутку, вам как надо - нажали ссылку №1, показался текст номер №1, нажали ссылку №2, скрывается текст №1 и показывается тескт номер №2, или текст №1 не должен исчезать?
Второе, если у вас якоря только лишь для того чтобы получить курсор "рука" и обратиться к функции, то их можно выбросить.
И третье - уберите вы стили из таблицы, пропишите вы это в CSS, вам будет легче в коде разобраться и меньше вероятности допустить ошибок, да и стили легче с одного места править.
Четвертое, всегда можно просмотреть исходный код страницы, там можно увидеть причину "неполадок". Пропишите следующую строку так:
<?
echo "<a href='#' onclick='return showPage(".$a.");'>".$tmp1['pole5'].":</a><br></td>";
|
| |
|
|
|
|
|
|
|
для: sim5
(10.10.2007 в 11:49)
| | Да Вы правы:
нажали ссылку №1, показался текст номер №1 (справа - и чтоб все ссылки остались слева), нажали ссылку №2, скрывается текст №1 и показывается тескт номер №2 вместо текста №1 ,
Я бы рада в css, но не умею...
У меня ссылки все выводятся циклом - из-за этого путаюсь
И ещё я думаю проблема не в этой строчке
echo "<a href='#' onclick='return showPage(".$a.");'>".$tmp1['5']":</a><br></td>";
| а где-то здесь:
echo "<td width='69%' background='map.jpg' valign='top'><div id=page".$a." style='display:none;'>
<br><font color='#3366CC'>текст ".$tmp1['6']."</font>
</div> </td>";
|
| |
|
|
|
|
|
|
|
для: lilu
(10.10.2007 в 11:59)
| | У вас переменная $a в строке где она передается аргументом в функцию, заключена между однинарными кавычками, а значит у вас в итоге будет на странице showPage($a), а не showPage(2), например, отсюда и не будет работать скрипт.
Прочитайте про Каскадные траблицы стилей, минимума хватит, чтобы не писать так:
<div id=page".$a." style='display:none;'>
<br><font color='#3366CC'>текст ".$tmp1['6']."</font></div>
|
а сделать так:
<div class=shows id=page".$a." style='display:none;'>
<br>текст ".$tmp1['6']."</div>
|
прописав в CSS (можно и встроенным стилем, на странице) и цвет фона слоя, и его шрифт и прочее. Тоже самое и для ячеек таблицы. Ваш РНР код легче станет, а также и результирующий HTML код, а это большой плюс. | |
|
|
|