Jump to content
  • 0

Управление содержимым ячейки таблицы из меню


Aryan
 Share

Question

Здравствуйте.

Есть таблица. В одном столбце таблицы находится меню. В другом контент.

Нужно, чтобы по выбору пункта меню менялся контент.

Контент представлен ввиде других страничек html.

Подскажите, как сделать :) Желательно с примерами :) Спасибо.

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

SSI предназначен для "впаивания" одних файлов в код других. Как это применить для схемы: клик в меню -> изменение контента в ячейке таблицы? Есть вариант грузить заного страницу с другим контентом, но ради одной ячейки таблицы, грузить заного всю страницу - идиотизм :rolleyes:

PS для понятности вот код принципа работы SSI

Файл index.shtml

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>

<!--#include file="content.html"-->

</body>
</html>


Файл content.html

<h1>Работает!</h1>


Код, полученный в результате использования SSI

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>

<h1>Работает!</h1>

</body>
</html>

Это удобно, если контент меняется мной в другом файле, а этот файл "впаивается" в ячейку. Но у меня другое. Мне нужно вставлять разные файлы с разным контентом, взависимости от выбора пункта меню.

Edited by Aryan
Link to comment
Share on other sites

  • 0

ajax.js

function createHttpRequest() {
var httpRequest;
var browser = navigator.appName;

if (browser == "Microsoft Internet Explorer") {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} else {
httpRequest = new XMLHttpRequest();
}

return httpRequest;
}

function sendRequest(file, _resultId, getRequestProc) {
resultId = _resultId;
document.getElementById(resultId).innerHTML = 'Загрузка...';
httpRequest.open('get', file);
httpRequest.onreadystatechange = getRequestProc;
httpRequest.send(null);
}

function getRequest() {
if (httpRequest.readyState == 4) {
document.getElementById(resultId).innerHTML = httpRequest.responseText;
}
}

var httpRequest = createHttpRequest();
var resultId = '';

index.html

<a href="#" onclick="java script:sendRequest('1.html', 'result', getRequest);">Вкладка №1</a>
<a href="#" onclick="java script:sendRequest('2. html', 'result', getRequest);">Вкладка №2</a>
<a href="#" onclick="java script:sendRequest('3. html', 'result', getRequest);">Вкладка №3</a>
<hr>
<p id="result"></p>

Edited by Джин
Link to comment
Share on other sites

  • 0

Два доп. вопроса:

1) Как сделать, чтобы по умолчанию грузилась одна из

<a href="#" onclick="java script:sendRequest('1.html', 'result', getRequest);">Вкладка №1</a>
<a href="#" onclick="java script:sendRequest('2.html', 'result', getRequest);">Вкладка №2</a>
<a href="#" onclick="java script:sendRequest('3.html', 'result', getRequest);">Вкладка №3</a>

при открытии index.html?

2) Проблема с кодировкой. Русский текст не воспринимается. Как это решить?

Все, что как-то указывает на кодировку, что есть сейчас это в index.html строки:

<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

Спасибо.

Link to comment
Share on other sites

  • 0

<a href="#" onclick="java script:sendRequest('1.html', 'result', getRequest);">Вкладка №1</a>

<a href="#" onclick="java script:sendRequest('2. html', 'result', getRequest);">Вкладка №2</a>

<a href="#" onclick="java script:sendRequest('3. html', 'result', getRequest);">Вкладка №3</a>

<hr>

<p id="result"><!--#include file="main.html"--></p>

про кодировку не знаю... у меня все норм работало.

Link to comment
Share on other sites

  • 0

Хм, проблема с кодировкой в IE, в Opera все норм...

Есть идеи, из-за чего это может быть?

В настройках IE стоит автоопределение кодировки, в html прописано <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

PS Хм, не знаю, что это было, но это прошло, само-собой... :rolleyes:

Edited by Aryan
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy