[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Javascript inside of PHP ...
mscd
Добрый всем вечер, помогите разобраться.

Задача: Новое сообщение должно мигать разными цветами ...
Решение: Есть 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 код. А получаешь ты "кашу".

Спустя 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>

Я проверил - не мигает, на самом деле smile.gif

Но вот когда я весь этот текст заменил на
PHP
<li><strong><font color="#АА3458"><a href="?pg=msg" title="Messages" id="head1">Messages [ 25 ]</a></font></strong></li>

то тогда всё замигало, как и должно wink.gif

Я думаю, что ты сам догадаешься, как реализовать создание этой строки через echo.

Небольшое примечание: если внутри выводимой строки у тебя нету переменных, то тогда используй одинарные кавычки. Тогда меньше дополнительных слэшей понадобится. Например, вместо "\"" лучше написать просто '\'. Ну, и так далее.

Спустя 57 минут, 19 секунд (27.04.2009 - 01:16) mscd написал(а):
Спасибо, что разжевал, но по PHP исходнику видно, что я всё эти переменные указал. Мне непонятно как объявить главную функцию которая запускает сам скрипт на языке PHP <BODY onLoad="Changehead();"> ??? Без неё ничего не замигает, в HTML исходнике она идёт отдельной строчкой, в PHP коде все должно быть в одной строке т.е что-то типо echo (... <body onload='Changehead()'><id='head1'>) но так ничего не работает sad.gif

Спустя 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)
Цитата (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, можно несколько раз вызывать. Как тебе больше нравится.

Спасибо за помощь, проблему решил ... smile.gif


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.