Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подмена кода php include при наведении на ссылку (https://javascript.ru/forum/misc/10375-podmena-koda-php-include-pri-navedenii-na-ssylku.html)

pavdin 01.07.2010 14:40

Подмена кода php include при наведении на ссылку
 
Здравствуйте гуру по javascript!
Есть такая задача.... Как при наведении на ссылку (картинку)
подменялся код в

<?php include 'http://www.site.com/file.php';?>.

Например наводиш, появляеться http://www.site.com/file1.php';?>
Убираешь курсор, появляеться http://www.site.com/file.php';?>.
Если это возможно?

Если нет, то как подменить при наведении на ссылку часть кода html
например такой

<DIV class="path"><A href="http://site.com">Главная</A></DIV>

evguenyk 01.07.2010 14:52

PHP инклуд - это серверная часть, она выполняется на сервере и не может контролироваться JS, который выполняется на стороне пользователя.

См код, надеюсь всё понятно будет.
Это код на странице:
<a onMouseOver='change()' onMouseOut='chenge_back()'>Ссылка, на которую наводить</a>

<div id='changeble'> 
<a href='http://site.ru/'>Главная</a>
</div>


Код в header
<script type="text/javascript">
function change()
     {
     var div = getElementById('changeble'); //находим элемент по его id
     div.innerHTML = "<a href='http://url.ru/'>Новая ссылка</a>"; //изменяем содержимое элемента
     }

function chenge_back()
     {
     var div = getElementById('changeble');
     div.innerHTML = "<a href='http://site.ru/'>Главная</a>";
     }
</script>


PS уважаемые гуру, просьба не ругаться и не писать о том, что это можно было сделать более емким кодом, одной функцией и т.д.... я написал специально максимально раскрыто, чтобы человеку было понятно.

pavdin 01.07.2010 15:24

Вставил, но почему-то не работает ???
Вот пример http://tochka-vrn.ru/primer.html

pavdin 01.07.2010 15:37

Люди, помогите кто можете... срочо нужно

evguenyk 01.07.2010 15:42

мда.. действительно ошибочка укралась.. поленился проверять код..
<html>
<head>
<TITLE>Пример</TITLE>

<script type="text/javascript">
function change()
     {
     var div = document.getElementById('changeble');
     div.innerHTML = "<a href='http://url.ru/'>Новая ссылка</a>"; 
     }
function change_back()
     {
     var div = document.getElementById('changeble');
     div.innerHTML = "Пример содержимого, которое нужно изменить";
     }
</script>


</head>
<body>

<a href="#" onMouseOver="change();" onMouseOut="change_back();">Ссылка, на которую наводить</a>

<div id='changeble'> 
Пример содержимого, которое нужно изменить
</div>

</body>
</html>

pavdin 01.07.2010 15:50

Работает))) Спасибо огромное! А где ошибочка таилась то?

pavdin 01.07.2010 15:55

Ещё вопрос,если не в тягость будет.

Есть на станице <div class="class1" id="class1">
Как при наведении на ссылку подменить на сайте все class и id?

Только что бы вставить всето class="class1" код java и всё.... а при наведении всё изменялось

evguenyk 01.07.2010 16:12

по классу менять - не самое лучшее решение, ибо разные браузеры по разному называют классы...
проще по id, тогда не запутаетесь.. проставляйте id для элементов и будет Вам счастье.

Octane 01.07.2010 16:13

Цитата:

Сообщение от evguenyk
разные браузеры по разному называют классы...

Например?

pavdin 01.07.2010 16:22

Есть на станице
<DIV id="primer1" ></DIV>
<DIV id="primer2" ></DIV>
<DIV id="primer3" ></DIV>

нужно чтобы при наведении на одну эту ссылку всё менялось на
<DIV id="primer1.1" ></DIV>
<DIV id="primer2.1" ></DIV>
<DIV id="primer3.1" ></DIV>

Как это лучше и проще сделать?

pavdin 01.07.2010 16:24

т.е не один <DIV id="primer1" ></DIV> менялся а все

<DIV id="primer1" ></DIV>
<DIV id="primer2" ></DIV>
<DIV id="primer3" ></DIV>
причём на разные, какие мне нужны.

Как лучше сделать, подменить всё содержимое полностью, или можно только ID поменять...

Kolyaj 01.07.2010 16:26

Цитата:

Сообщение от pavdin
Как это лучше и проще сделать?

Лучше так не делать.

evguenyk 01.07.2010 16:26

Цитата:

Сообщение от Octane (Сообщение 61855)
Например?

например стандартный браузер HTC с операционкой Android не понимает div.className... два часа искал, в чем косяк...

pavdin 01.07.2010 16:31

А задача общая такая: в CSS к этим всем Div прописан фон-картинка.(у каждого Div свой фон картинка)

Нужно чтобы при наведении на ссылку у всех Div которые мне нужны, менялась заливка картинка. А как убираешь курсор с ссылки, всё возращалось обратно.
Я хочу подменять CSS при наведении на ссылку у Div.

Или можно здесь проще мыслить)?

pavdin 01.07.2010 16:31

Kolyaj,
А как нужно?

Kolyaj 01.07.2010 16:36

Цитата:

Сообщение от pavdin
А как нужно?

Менять класс у body. А в стилях что-то вроде
Код:

#div {
    background: red;
}
body.class1 #div {
    background: green;
}


evguenyk 01.07.2010 16:39

pavdin, конечно извращенский вариант с точки зрения верстки, но зато не потребует практически никаких знаний JS.

для каждого div создаёте еще один блок с display:none и установленным bacground ... при наведение на ссылку - резко показываете все эти "скрытые" блоки.. при убирание ссылки - прячете..

полнейший изврат, зато селать легко...

ну и как более приличный вариант:
- для каждого дива делаете атрибут например "change_backroung" (это неизвестный браузерам атрибут.
- при наведение на ссылку - собираете массив всех дивов и проходясь по каждому определяете его change_backroung и устанавливаете div.style.background таким же, как и прописано в change_background
- при убирание мышки со ссылки - для всех стираете нафиг все div.style.background

этот вариант не совсем корректен, но если не хочется особо извращаться, то воспользоваться можно;) (я так делал пару раз, когда лениво было - работает на ура)

pavdin 01.07.2010 16:40

Ни чего не понял.... вот пример...
Нужно добавить в код, картинка 2 и картинка3



http://tochka-vrn.ru/primer.html

Octane 01.07.2010 16:42

Цитата:

Сообщение от evguenyk
например стандартный браузер HTC с операционкой Android не понимает div.className... два часа искал, в чем косяк...

А у меня на Nokia 6681 в стандартном браузере не работает setInterval и еще много чего не работает, и что, давайте из-за недобраузеров не использовать половину возможностей!? В Android насколько я знаю используется WebKit, который активно развивается и часто обновляется, скорее всего это проблема присутствует в какой-нибудь одной версии прошивки, если вообще присутствует, а то может JS-код кривой…

Kolyaj 01.07.2010 16:47

Цитата:

Сообщение от Octane
А у меня на Nokia 6681 в стандартном браузере не работает setInterval

Один из пунктиков, почему я его не использую :)

evguenyk 01.07.2010 17:15

Цитата:

Сообщение от Octane (Сообщение 61855)
Например?

Цитата:

Сообщение от Octane (Сообщение 61870)
давайте из-за недобраузеров не использовать половину возможностей!?

ну а это уже выбор каждого кодера. Лично для меня важно, чтобы код работал в максимальном количестве мест и чтобы он был максимально читабельным. Кто-то сторонник максимальной оптимизации и навороченности с использованием как можно большего количества технологий. Каждый выбирает своё. Если я знаю, что функция где-то некорректно работает, то зачем я буду её использовать? ведь можно обойтись более простыми решениями.

PS сугубо личное ИМХО

Octane 01.07.2010 17:25

В IE5 не работает apply, не используйте этот метод!

Kolyaj 01.07.2010 17:27

evguenyk,
как вы css-класс у элементов меняете?

evguenyk 01.07.2010 17:33

Kolyaj,
вообще не меняю. если нужно что-то изменить, то меняю на "лету" в div.style...

PS я всётаки больше с php работал... js начал осваивать всего 2 месяца назад... поставленные задачи пока все смог решить.. о, что я недавно кожу на JS делает код предельно читабельным и максимально удобным, без особых изысков..

Octane 01.07.2010 17:37

Цитата:

Сообщение от evguenyk
меняю на "лету" в div.style

Цитата:

Сообщение от evguenyk
код предельно читабельным и максимально удобным

И что же тут удобного? Если нужно поменять стили, придется лезть в JS?

Kolyaj 01.07.2010 17:41

Цитата:

Сообщение от evguenyk
вообще не меняю. если нужно что-то изменить, то меняю на "лету" в div.style...

Цитата:

Сообщение от evguenyk
js начал осваивать всего 2 месяца назад

Понятно.

evguenyk 01.07.2010 17:43

Пффф... господа, давайте оставим эту тему... мы уж очень сильно отвлеклись от помощи ТС...

Octane, да, мне так действительно удобнее.. минусы знаю и помню))

pavdin 01.07.2010 17:58

Получилось.... Спасибо огромное....

Вот промер того, что я хотел.... Нажимаешь на логотип и .... ;). Супер....
А реально сделать, чтобы картинки, которые подменяются, подменялись плавно туда и обратно?

pavdin 01.07.2010 17:59

http://cp769028.cpanel.tech-logol.ru...ec/gaz-vrn.htm

evguenyk 01.07.2010 18:21

pavdin,
очень милый дизайн ;) и задумка классная ;)


Часовой пояс GMT +3, время: 11:52.