Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Цыкл

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Exponat
Отправлено: 13 Сентября, 2013 - 16:29:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Здравствуйте реализую такую функцию: есть столбик в котором выводятся последние новости (70 штук). При наведении мышкой на заголовок (ссылку) новости хочется чтоб возле нее выскакивала картинка. Или под ней картинка с описанием (description). Реализую так:
CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2.  
  3. function showImg(id,fn){
  4.     var el = document.getElementById(id);
  5.     if(fn) el.innerHTML = '<img style="width:100px;" src="' + fn + '" />'; else el.innerHTML ='&nbsp;';
  6. }
  7.  
  8. </script>


PHP:
скопировать код в буфер обмена
  1. <?PHP $zapros_news = mysql_query("SELECT * FROM `news` ORDER BY `id` DESC LIMIT 70") or die(mysql_error());
  2. while ($result_news = mysql_fetch_assoc($zapros_news))
  3. {      
  4.  
  5. {
  6. echo "<a class='link1' href='?action=news_inf&id=".$result_news['id']."' onmouseover=\"showImg('img1','http://www.domain.ru/image/news/".$result_news['img']."')\" onmouseout=\"showImg('img1','')\"> &nbsp;".htmlspecialchars($result_news['title'], ENT_QUOTES)."<div id='img1'></div></a>";
  7. }
  8.  }
  9. echo "</table>";
  10.  
  11. ?>


Оно как бы выходит. Но фотка выводится только возле первой новости. За это отвечает идентификатор img1. Как тут в цикле сделать чтоб для каждого заголовка img№ - номер присваивался сам. То есть новость 1 будет иметь img1. Новость 2 img2....и т.д.

И еще один минус. До наведение мышкой - все ровно в табличке ленты новостей. Но после наведение и забирания фокуса мышки с ссылки - остается пустое место (там где выводится картинка). Как сделать чтоб после onmouseout все опять ровно вернулось на место.

Спасибо!
 
 Top
Muxa
Отправлено: 13 Сентября, 2013 - 21:49:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 247
Дата рег-ции: Март 2012  
Откуда: Россия, Тверь


Помог: 5 раз(а)




Exponat пишет:
чтоб для каждого заголовка img№ - номер присваивался сам

CODE (htmlphp):
скопировать код в буфер обмена
  1. $i = 0;
  2. while ($result_news = mysql_fetch_assoc($zapros_news)) : ?>
  3.     <a class='link1' href='?action=news_inf&id=<?php echo (int) $result_news['id']; ?>'
  4.         onmouseover="showImg('img<?php echo ++$i; ?>','http://www.domain.ru/image/news/<?php echo htmlspecialchars($result_news['img']); ?>')"
  5.         onmouseout="showImg('img<?php echo $i; ?>','')">
  6. &nbsp;<?php echo htmlspecialchars($result_news['title'], ENT_QUOTES); ?><div id='img<?php echo $i; ?>'></div></a>
  7. <?php endwhile; ?>
  8.     </table>

Сами отступы у вас из-за div-ов внутри ссылок. Собственно, можно переписать как-то так
CODE (javascript):
скопировать код в буфер обмена
  1. function showImg(lnk, id,fn){
  2.         if(!fn)
  3.                 return lnk.removeChild(document.getElementById(id))
  4.         if(null !== document.getElementById(id) )
  5.                 return
  6.         var el = document.createElement('div')
  7.         el.setAttribute('id', id)
  8.         lnk.appendChild(el)
  9.         el.innerHTML = '<img style="width:100px;" src="' + fn + '" />'
  10. }

и вывод поменять на такой
CODE (htmlphp):
скопировать код в буфер обмена
  1. $i = 0;
  2. while ($result_news = mysql_fetch_assoc($zapros_news)) : ?>
  3.     <div><a class='link1' href='?action=news_inf&id=<?php echo (int) $result_news['id']; ?>'
  4.         onmouseover="showImg(this, 'img<?php echo ++$i; ?>','http://www.domain.ru/image/news/<?php echo htmlspecialchars($result_news['img']); ?>')"
  5.         onmouseout="showImg(this, 'img<?php echo $i; ?>','')">
  6. &nbsp;<?php echo htmlspecialchars($result_news['title'], ENT_QUOTES); ?></a></div>
  7. <?php endwhile; ?>
  8.     </table>

хотя все равно говнокод..

(Отредактировано автором: 13 Сентября, 2013 - 21:50:34)

 
 Top
Exponat
Отправлено: 15 Сентября, 2013 - 15:38:43
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Да, реализация может не столь удачная...но леплю уже с чего есть....
Вы мне помогли!
Картинки выводятся возле каждой ссылки.
Последнее чтоб хотел спросить, а как мне дескрипшенс новости вывести возле появившейся картинки? Дескрипшенс информация хранится в таблице news столбец descriptions.

Это в ява скрипте нужно что-то менять?

Пока сейчас у меня работает так:

CODE (javascript):
скопировать код в буфер обмена
  1. function showImg(id,fn){
  2.     var el = document.getElementById(id);
  3.     if(fn) el.innerHTML = '<img style="width:100px;" src="' + fn + '" />'; else el.innerHTML ='';
  4. }


PHP:
скопировать код в буфер обмена
  1. $zapros_news = mysql_query("SELECT * FROM `news` ORDER BY `id` DESC LIMIT 70") or die(mysql_error());
  2. echo "<table cellpadding='0' cellspacing='0' border='0' >";
  3. $date1=0;
  4. $i = 0;
  5. while ($result_news = mysql_fetch_assoc($zapros_news))
  6. {  
  7. $date = $result_news['date'];  
  8. if ($date!=$date1)
  9. {
  10. echo  "<tr><td align='left' style='border-bottom:1px solid #666;  padding-top:5px;padding-bottom:3px; '><b><font  size='3'>".$date."</font></b></td><td  style='border-bottom:1px solid #666;'></td></tr>";
  11. }
  12.  
  13. echo  "<tr><td align='left' style='border-bottom:1px dashed #CCCCCC;  padding-top:3px; padding-bottom:3px;'><div  style='margin-left:5px; margin-right:5px;'><font  size='2'><span  class='time_l'>&nbsp;".$result_news['time']." </span>";
  14.  
  15. {
  16. echo  "<a class='link1'  href='?action=news_inf&id=".$result_news['id']."'  onmouseover=\"showImg('img".++$i."','http://www.domain.ru/image/news/".$result_news['img']."')\"onmouseout=\"showImg('img".$i."','')\">&nbsp;".htmlspecialchars($result_news['title'],  ENT_QUOTES)."<div id='img".$i."'></div></a>";
  17. }
  18.  
  19. echo "</font></div><div id='img".$i."'></div></td></tr>";
  20. $date1 = $result_news['date'];
  21.  }
  22. echo "</table>";
  23.  


Как дескрипшенс вывести?
И еще один момент который портит юзабительность: когда картинка появилась - наведя на нее курсор - она исчезает. Как сделать что она еще была в фокусе при наведении на нее?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB