Задача: Новое сообщение должно мигать разными цветами ...
Решение: Есть Javascript который за это отвечает
Проблема Не могу его внедрить в код PHP
В HTML коде все прекрасно работает и мигать начинает только переменная $number :
</HEAD>
<BODY onload="Changehead();">
<P id="head1"><?php echo $number ?></P>
</BODY>
</HTML>
В PHP вместо $number мигать начинает всё, кроме этой переменной:
echo("<li><a href=\"?pg=msg\" title=\"" . $MNAV_MESSAGES . "\">" . $MNAV_MESSAGES . " <strong><font color=#АА3458><body onload='Changehead()' id='head1'> [ " . $number . " ]</font></strong></a></li>");
Скорее всего проблема в синтаксисе, подскажите где именно ...
Спустя 16 минут, 52 секунды (26.04.2009 - 20:50) jetistyum написал(а):
ну раз проблема в JS то покажи что у тебя получается на выходе ??? кидай хтмл.. будем посмотреть.
Спустя 1 час, 56 минут, 15 секунд (26.04.2009 - 22:46) mscd написал(а):
Цитата (jetistyum @ 26.04.2009 - 17:50) |
ну раз проблема в JS то покажи что у тебя получается на выходе ??? кидай хтмл.. будем посмотреть. |
Нет, проблема не в JS c ним всё ок. Проблема в том, что я не знаю как перевести вот эти две строчки HTML кода <BODY onload="Changehead();">
<P id="head1">Текст который должен мигать</P> на язык PHP.
Сам код который выводит новые сообщения выглядит так:
echo("<li><a href=\"?pg=msg\" title=\"" . $MNAV_MESSAGES . "\">" . $MNAV_MESSAGES . " <strong><font color=#АА3458>[ " . $number . " ]</font></strong></a></li>");
Как увязать два этих кода чтобы переменная $number мигала ...
Я делаю так echo("<li><a href=\"?pg=msg\" title=\"" . $MNAV_MESSAGES . "\">" . $MNAV_MESSAGES . " <strong><font color=#АА3458><body onload='Changehead()' id='head1'> [ " . $number . " ]</font></strong></a></li>");
После этого почему-то весь текст на форме начинает мигать заданными цветами, а сама переменная $number нет. Помогите разобраться, может где то " лишние или не хватает >
Спустя 6 минут, 56 секунд (26.04.2009 - 22:53) sergeiss написал(а):
Я с самого начала не вник, а теперь вопрос: а почему у тебя сначала идет тэг <a....>, а внутри него стоит тэг <body ....>?
jetistyum не из простого любопытства предложил тебе посмотреть на готовый код (который получается после твоего echo) и показать его тут. В результате действий ПХП ты должен получить полноценный HTML код. А получаешь ты "кашу".
jetistyum не из простого любопытства предложил тебе посмотреть на готовый код (который получается после твоего echo) и показать его тут. В результате действий ПХП ты должен получить полноценный HTML код. А получаешь ты "кашу".
Спустя 1 час, 2 минуты, 21 секунда (26.04.2009 - 23:55) mscd написал(а):
Цитата (sergeiss @ 26.04.2009 - 19:53) |
Я с самого начала не вник, а теперь вопрос: а почему у тебя сначала идет тэг <a....>, а внутри него стоит тэг <body ....>? jetistyum не из простого любопытства предложил тебе посмотреть на готовый код (который получается после твоего echo) и показать его тут. В результате действий ПХП ты должен получить полноценный HTML код. А получаешь ты "кашу". |
В моём случае это не имеет значение где стоит, я пробовал в разные места вставлять, рузультат тот же. Приведу код JS полностью, может так будет понятнее:
HTML |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <script type="text/javascript"> massive_length=2; colors_= new Array(massive_length); colors_[0] = "black"; colors_[1] = "red"; var next_ = 0; function Changehead() { headcolor= colors_[next_]; document.getElementById("head1").style.color=headcolor; next_++; if(next_>massive_length-1) next_=0; window.setTimeout("Changehead()",300); } </script> <BODY onLoad="Changehead();"> <P id="head1">Мигающий текст </P> </body> </html> |
Вот PHP код который выводит новые сообщения:
PHP |
echo("<li><a href=\"?pg=msg\" title=\"" . $MNAV_MESSAGES . "\">" . $MNAV_MESSAGES . " <strong><font color=#АА3458>[ " . $number . " ]</font></strong></a></li>"); |
Как увязать всё это вместе ?
Спустя 23 минуты, 24 секунды (27.04.2009 - 00:19) sergeiss написал(а):
Давай пропустим явускрипт, я даже не вникал, чего там. Оставим только БОДИ.
Вот это есть:
Вот это есть:
HTML |
<BODY onLoad="Changehead();"> <P id="head1">Мигающий текст </P> </body> |
Предположим, что переменная $MNAV_MESSAGES содержит текст "Messages", а переменная $number содержит число 25.
Вместо "Мигающий текст" ты получишь в эхе
HTML |
<li><a href="?pg=msg" title="Messages"><strong><font color=#АА3458>[ 25 ]</font></strong></a></li> |
а в сумме
HTML |
<P id="head1"><li><a href="?pg=msg" title="Messages">Messages<strong><font color=#АА3458>Messages [ 25 ]</font></strong></a></li></P> |
Я проверил - не мигает, на самом деле
Но вот когда я весь этот текст заменил на
PHP |
<li><strong><font color="#АА3458"><a href="?pg=msg" title="Messages" id="head1">Messages [ 25 ]</a></font></strong></li> |
то тогда всё замигало, как и должно
Я думаю, что ты сам догадаешься, как реализовать создание этой строки через echo.
Небольшое примечание: если внутри выводимой строки у тебя нету переменных, то тогда используй одинарные кавычки. Тогда меньше дополнительных слэшей понадобится. Например, вместо "\"" лучше написать просто '\'. Ну, и так далее.
Спустя 57 минут, 19 секунд (27.04.2009 - 01:16) mscd написал(а):
Спасибо, что разжевал, но по PHP исходнику видно, что я всё эти переменные указал. Мне непонятно как объявить главную функцию которая запускает сам скрипт на языке PHP <BODY onLoad="Changehead();"> ??? Без неё ничего не замигает, в HTML исходнике она идёт отдельной строчкой, в PHP коде все должно быть в одной строке т.е что-то типо echo (... <body onload='Changehead()'><id='head1'>) но так ничего не работает
Спустя 30 минут, 26 секунд (27.04.2009 - 01:46) sergeiss написал(а):
Цитата (mscd @ 27.04.2009 - 01:16) |
но по PHP исходнику видно, что я всё эти переменные указал |
Ты некорректно указал. Главное отличие - у тебя id head1 установлен для параграфа, а я дал его тэгу <a ...>
В результате ты должен получить такой код (именно в таком порядке, а не так, как ты указал в самом первом сообщении темы!!!)
HTML |
<BODY onLoad="Changehead();"> <li><strong><font color="#АА3458"><a href="?pg=msg" title="Messages" id="head1">Messages [ 25 ]</a></font></strong></li> </body> |
Ну так и выведи это всё через echo! Только замени куски текста и количество на переменные. Подумай все-таки сам, как это сделать - для твоей же пользы. Я и так уже тебе написал весь текст, который должен быть выведен. Дальше подумай немного сам. Судя по тому, что и как ты тут написал, ты сможешь это сделать.
Можно вывести это одним вызовом echo, можно несколько раз вызывать. Как тебе больше нравится.
Спустя 14 часов, 41 минута, 50 секунд (27.04.2009 - 16:28) Guest написал(а):
Цитата (sergeiss @ 26.04.2009 - 22:46) | ||||
Ты некорректно указал. Главное отличие - у тебя id head1 установлен для параграфа, а я дал его тэгу <a ...> В результате ты должен получить такой код (именно в таком порядке, а не так, как ты указал в самом первом сообщении темы!!!)
Ну так и выведи это всё через echo! Только замени куски текста и количество на переменные. Подумай все-таки сам, как это сделать - для твоей же пользы. Я и так уже тебе написал весь текст, который должен быть выведен. Дальше подумай немного сам. Судя по тому, что и как ты тут написал, ты сможешь это сделать. Можно вывести это одним вызовом echo, можно несколько раз вызывать. Как тебе больше нравится. |
Спасибо за помощь, проблему решил ...
_____________