Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: onclick='return showPage(1)
 
 автор: lilu   (09.10.2007 в 15:26)   письмо автору
 
 

подскажите как сделать так чтобы при нажатии на каждую ссылку открывалось в соседнем столбце соот-ая надпись

<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, чтобы срабатывала каждая.

   
 
 автор: sim5   (09.10.2007 в 15:52)   письмо автору
 
   для: 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>

Если я вас только правильно понял.

   
 
 автор: lilu   (09.10.2007 в 16:17)   письмо автору
 
   для: 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>

   
 
 автор: sim5   (09.10.2007 в 16:28)   письмо автору
 
   для: 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 для контейнеров.

   
 
 автор: lilu   (09.10.2007 в 16:44)   письмо автору
 
   для: sim5   (09.10.2007 в 16:28)
 

прошу прощения, торопилась и вот здесь
while($tmp1 = mysql_fetch_array($q)) // единичку пропустила
<a href='#' onclick='return showPage(1);'>".$tmp1['pole1']."


>//далее, елси вы динамически формируете меню (или что это у вас),
>//то надо навеное как-то прописывать и аргумент передаваемый в функциию
>showPage(вот здесь)
>//а у вас этого не происходит
>//тоже самое и с Id для контейнеров.

вот про это я и спрашиваю
и что нужно в функцию подставлять

   
 
 автор: sim5   (09.10.2007 в 16:52)   письмо автору
 
   для: lilu   (09.10.2007 в 16:44)
 

Не в функцию, а как аргумент для функции. Номер, которым вы нумеруете ссылки и DIV-ы. Так как у вас записано, то все ссылки будут передавать аргумент 1, и все DIV будут иметь id равное page1.
Укажите до цикла переменную $a = 1, например, и подставляйте ее:
showPage($a); - как аргумент
id="page".$a - для указания id.
Затем увеличивайте значение - $a++ (при проходе цикла)

   
 
 автор: lilu   (10.10.2007 в 11:18)   письмо автору
 
   для: 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)

   
 
 автор: sim5   (10.10.2007 в 11:49)   письмо автору
 
   для: 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>";  

   
 
 автор: lilu   (10.10.2007 в 11:59)   письмо автору
 
   для: 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>";

   
 
 автор: sim5   (10.10.2007 в 12:19)   письмо автору
 
   для: 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 код, а это большой плюс.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования