Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/42: Рейтинг темы: голосов - 42, средняя оценка - 4.67
 Аватар для Floopy2k
161 / 4 / 3
Регистрация: 10.01.2009
Сообщений: 102

Смена содержимого без перезагрузки

21.10.2009, 00:16. Показов 7750. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Как можно реализовать смену содержимого без перезагрузки страницы? Нужно что бы при нажатии на ссылку в меню, сменилась ссылка. Т.е. Header, Menu и Footer не должны перезагружаться.
Code
1
2
3
4
5
6
7
8
9
10
11
12
<table>
  <tr>
    <td colspan="2">Header</td>
  </tr>
  <tr>
    <td width=30% >Menu</td>
    <td><?=include("ссылка");?></td>
  </tr>
  <tr>
    <td colspan="2">Footer</td>
  </tr>
</table>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.10.2009, 00:16
Ответы с готовыми решениями:

Смена содержимого без перезагрузки страницы
Доброго времени суток. Данная тема поднималась уже не раз, но появился дополнительный вопрос. в JS я &quot;не очень&quot;, посмотрел...

Создание окна без перезагрузки содержимого
Всем привет! Необходимо создать окно, при нажатии скажем на кнопку(окно всегда одно и тоже, ссылка тоже). Проблема в том, что если окно...

Смена текста без перезагрузки
Здраствуйте. Такая вот проблема: Есть три файла- index.html page.html contact.html В index.html есть меню, типа

8
Почетный модератор
 Аватар для Humanoid
11551 / 4346 / 452
Регистрация: 12.06.2008
Сообщений: 12,452
21.10.2009, 09:24
Вот простенький пример... такие функции AjaxCreate и AjaxGet я использую на работе... возможно, тебе стОит их немного подредактировать (убрать упоминание о divelem и т.п.)

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<script type="text/javascript"><!--
var xmlHttp=false;
function AjaxCreate()
{
    if (xmlHttp) return true;
    /* Сначала попробуем создать XMLHttpRequest для голимого и глючного Internet Explorer */
    /*@cc_on @*/
    /*@if (@_jscript_version >= 5)
    try {
        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e2) {
            xmlHttp = false;
        }
    }
    @end @*/
    /* А теперь, если у нас нормальный браузер, то создаём всё по-нормальному */
    if (!xmlHttp && typeof XMLHttpRequest != 'undefined')
        xmlHttp = new XMLHttpRequest();
    if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
        document.write('<div style="font-size: 16pt; color: black;">Не удалось создать объект для работы с Ajax. Возможно, в вашем браузере выключен JavaScript или вы пользуетесь фиговым браузером. Рекомендую установить <b>Mozilla Firefox</b> или <b>Opera</b></div>');
        xmlHttp=false;
        return false;
    }
    return true;
}
 
function AjaxGet(url,callback,divelem)
{
    function UpdatePage()
    {
        if (xmlHttp.readyState==4) {
            if (divelem==1)
                document.getElementById('ajaxpic').style.visibility='hidden';
            else
                if (divelem!='')
                    document.getElementById(divelem).innerHTML='';
            callback(xmlHttp.responseText);
        }
    }
    if (divelem==1)
        document.getElementById('ajaxpic').style.visibility='inherit';
    else
        if (divelem!='')
            document.getElementById(divelem).innerHTML='<img src="/img/ajax-loading.gif" alt="Загрузка" />';
    if (!xmlHttp) AjaxCreate();
    xmlHttp.open('GET',url,true);
    xmlHttp.onreadystatechange=UpdatePage;
    xmlHttp.send(null);
}
 
function cb(s) /* Эта функция сработает, когда придут данные от script.php */
{
  document.getElementById('link').innerHTML = s;
}
 
function change() /* Функция срабатывает от нажатия кнопки "Изменить". Она скачивает страницу script.php */
{
  AjaxGet('script.php',cb,'')
}
--></script>
 
<table>
  <tr>
    <td colspan="2">Header</td>
  </tr>
  <tr>
    <td width=30% >Menu</td>
    <td id="link">Ссылка</td>
  </tr>
  <tr>
    <td colspan="2">Footer</td>
  </tr>
</table>
 
<input type="button" value="Изменить" onclick="change();" />
1
 Аватар для Floopy2k
161 / 4 / 3
Регистрация: 10.01.2009
Сообщений: 102
21.10.2009, 14:47  [ТС]
Humanoid, спасибо все работает. Но появился ещё один вопрос:
Есть страница на которой находится какая-то картинка, две кнопки(следующая и предыдущая) и комментарии. Как сделать что бы при нажатии на кнопку показывалась другая картинка и обновлялись комментарии? Желательно без обновления страницы.
Картинки выводятся по ID из базы. Комментарии тоже
0
Почетный модератор
 Аватар для Humanoid
11551 / 4346 / 452
Регистрация: 12.06.2008
Сообщений: 12,452
21.10.2009, 18:03
Я вижу 2 способа:
1. При загрузке страницы сразу заполнить массив в JS и при нажатии кнопок просто подставлять следующие значения.
2. Таким же способом, как указано выше.

Первый способ хорошо подходит, если картинок не слишком много (иначе массив большой получится). Но он хорош тем, что всё загружается один раз и уже не надо подгружать остальные (как во втором способе).
Первый способ выглядит примерно так:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript"><!--
var CurNom=0;
var MaxNom=3;
var ImageList=array('/img/img1.jpg','/img/img2.jpg','/img/img3.jpg','/img/img4.jpg');
var CommentList=array('Комментарий 1','Комментарий 2','Комментарий 3','Комментарий 4');
function ChangeImg(i)
{
  CurNom += i; /* Если i положительная, то прибавит, если отрицательная, то отнимет */
  if (CurNom<0) CurNom=MaxNom; /* Если на нулевой картинке выбрали назад, то показать последнюю */
  if (CurNom>MaxNom) CurNom=0; /* Если на последней нажали вперёт, то показать нулевую */
  document.getElementById('image').src = ImageList[CurNom]; /* Меняем картинку */
  document.getElementById('image').alt = CommentList[CurNom]; /* Меняем атрибут alt у картинки */
  document.getElementById('comment').innerHTML = CommentList[CurNom]; /* Меняем комментарий */
}
--></script>
<img id="image" src="/img/img1.jpg" alt="Комментарий 1" />
<br />
<div id="comment">Комментарий 1</div>
<br /><br />
<input type="button" value="Предыдущая" onclick="ChangeImg(-1);" /> 
<input type="button" value="Следующая" onclick="ChangeImg(1);" />
1
288 / 131 / 4
Регистрация: 15.02.2009
Сообщений: 520
21.10.2009, 20:34
Чтобы уменьшить объём массива картинок, можно общую часть пути прописать один раз и подставлять переменную, если все файлы одного типа, можно и тип файла засунуть в переменную, вместе с точкой.

<img id="image" src="/img/img1.jpg" alt="Комментарий 1" />
Всегда будет один и тот же. Не все браузеры alt="" понимают, title надо добавлять.
В них тоже можно скриптом текст менять.
0
Почетный модератор
 Аватар для Humanoid
11551 / 4346 / 452
Регистрация: 12.06.2008
Сообщений: 12,452
21.10.2009, 20:39
Цитата Сообщение от BlackApricot Посмотреть сообщение
Всегда будет один и тот же. Не все браузеры alt="" понимают, title надо добавлять.
У них назначение разное. alt - это текст, который отображается, если картинка не загрузилась. А title - это всплывающая подсказка при наведении курсора. В принципе, они оба нафиг не нужны... просто по стандарту alt обязательно должен присутствовать (можно даже пустой).
0
 Аватар для Vanstorm
2773 / 341 / 22
Регистрация: 15.01.2008
Сообщений: 2,614
21.10.2009, 20:59
Цитата Сообщение от Humanoid Посмотреть сообщение
В принципе, они оба нафиг не нужны...
Нужны для тех кто вырубает картинки по разным причинам.
0
Почетный модератор
 Аватар для Humanoid
11551 / 4346 / 452
Регистрация: 12.06.2008
Сообщений: 12,452
21.10.2009, 22:32
Цитата Сообщение от Vanstorm Посмотреть сообщение
Нужны для тех кто вырубает картинки по разным причинам.
Я имею ввиду, что в данном случае не нужны. Я так понимаю, что это будет фотогалерея... а с выключенными картинками от неё будет мало толку. Комментарии вряд ли помогут понять всю красоту
0
288 / 131 / 4
Регистрация: 15.02.2009
Сообщений: 520
22.10.2009, 08:03
Без комментариев

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><html><head>
<title>ALT и TITLE</title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<meta name="generator" content="CSE HTML Validator Халявной Версии">
<link rel="stylesheet" type="text/css" href="*.css">
</head>
 
<body>
 
<div style="float:left;width:32%;">
<img src="3.bmp" alt="осёл" width="42" height="21"></div>
 
<div style="float:left;width:32%;">
<img src="3.bmp" alt="все1" title="все2" width="42" height="21"></div>
 
<div style="float:left;width:32%;">
<img src="3.bmp" alt="осёл" title="лиса, навигатор, сафари, опера, осёл" width="42" height="21"></div>
 
</body>
</html>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.10.2009, 08:03
Помогаю со студенческими работами здесь

Смена контента без перезагрузки
Здравствуйте! Столкнулась вот с какой проблемой. Делаю загрузку контента без обновления значит. На просторах интернета найдено несколько...

Смена текста в адресной строке без перезагрузки страницы
Дорого дня, уважаемые товарищи! Есть необходимость сменить адрес в адресной строке без перезагрузки страницы, так как содержимое...

Простая галерея. Смена изображений без перезагрузки страницы
Доброго времени суток всем! Есть &quot;такая загвоздка&quot; нужна простая &quot;маловесящая&quot; галерейка. Есть 3 изображения. (см. вкладку)...

Смена значения инпута radio, сделать checked без перезагрузки страницы
Доброго дня. Знатоки ajax'а, подскажите пожалуйста как сделать следующее. Есть страница ввода заказов (локальный сайт) с кучей...

Смена содержимого с function в div
Можно ли функцией управлять содержимым в контейнере? В input я просто задаю изменение путём через value, а в контейнере как?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru