Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > банер


Автор: malice_ 21.7.2007, 21:03
необходимо отображать банер, в котором чередуются результаты выполнения 2 php скриптов.

Код

<?php 
$query = "SELECT id_post, post, post_full, date_format(date,'%e.%m.%Y %H:%i') as newdate FROM post_work ORDER BY date DESC LIMIT 1" or die (mysql_error()); 
$result = mysql_query($query); 
$row = mysql_fetch_assoc($result); 
echo  "<tr><td> ".stripslashes($row['post'])."".' '."".$row['newdate']."</td></tr>"; 
echo '<tr ><td> <a href="all.php?id_post='.$row['id_post'].'">подробнее</a></td></tr>'; 
mysql_close($connection); 
?> 


пример работы скрипта со сменой текста за определенный интервал времени:
Код






<script language="JavaScript">
 var arrTexts, index = 0;
 function preloadTexts() {arrTexts = preloadTexts.arguments;}
 function rotate()
 {
  document.getElementById("ZZZ").innerText = arrTexts[index];
  index++;
  if (index>=arrTexts.length) {index = 0;}
  // задержка 1 сек= 1000
  setTimeout("rotate()", 1000)
 }
 preloadTexts("скрипт1", "скрипт2");
</script>

<body onload="rotate()">
<table  border="0" width="88" height="31" bgcolor="#40E0D0" cellpadding="1" cellspacing="0" style="cursor:hand">
 <tr>
 <th>
  <table border="0" width="100%" height="100%" bgcolor="#c9ba31" cellpadding="0" cellspacing="1">
  <tr>
  <th bgcolor="#40E0D0">
  

 <a href="http://www.1111.com" title="1: http://www.1.com"><span id="ZZZ" style="font-size:10">ссылка</span></a>
  </th>
  </tr>
  </table>
 </th>
 </tr>
</table>
</body>



как передать результат выполнения .php в javascript?
даже простейший пример
preloadTexts("<?php  echo "111"; ?> ", "текст2");  не работает. 

возможно существует другой способ решения. буду очень благодарна за помощь

Автор: Diesel Draft 22.7.2007, 12:03

Есть 2 варианта, конечно если ты сам рендериш скрипт Javascript 
1. Почитай про JSon и функцию json_encode()
2. Можно просто вставить в текст Javascript переменою

Автор: malice_ 22.7.2007, 22:06
preloadTexts(<?php  echo "111"; ?> , "текст2");  
так работает. кавычки не нужны. 

Автор: malice_ 23.7.2007, 07:32
проблемы с выводом из массива:
Код

<?
include "config_post.php";

$query = "SELECT id_post, post, post_full, date_format(date,'%e.%m.%Y %H:%i') as newdate FROM post_work ORDER BY date DESC LIMIT 1" or die (mysql_error());
$result = mysql_query($query);
$row = mysql_fetch_assoc($result)
?>
preloadTexts(<? echo ".$row['post']."; ?>, <? echo "$1111";  ?>);


undefined index post

Автор: Ashen 23.7.2007, 07:38
Скорее всего результат выборки пустой. Можно написать что-то вида:
Код

if (mysql_num_rows($result) != 0) {
    $row = mysql_fetch_assoc($result);
}

Автор: malice_ 23.7.2007, 08:06
вопрос решен: 
измененный код:
Код

<?
include "config_post.php";
$query = "SELECT id_post, post, post_full, date_format(date,'%e.%m.%Y %H:%i') as newdate FROM post_work ORDER BY date DESC LIMIT 1" or die (mysql_error());
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result))
{ 
$new = $row['post'] . ' ' . $row['newdate'];  
?> 
preloadTexts ("<? echo "$new"; ?>", "<? echo "$new"; ?>"); <? } 
?> 
</script>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)