Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как с помощью javascript взять данные из одного файла html и закинуть в другой? (https://javascript.ru/forum/misc/34520-kak-s-pomoshhyu-javascript-vzyat-dannye-iz-odnogo-fajjla-html-i-zakinut-v-drugojj.html)

rusik 08.01.2013 18:40

как с помощью javascript взять данные из одного файла html и закинуть в другой?
 
Здравствуйте и с Новым Годом!

Подскажите, пожалуйста, как с помощью javascript взять данные их одного файла html и закинуть в другой?

Опишу задачу подробнее:
1. есть основная страница сайта газеты, например, gazeta.html
2. есть много статей, например, vybory2012.html, sberbank_prodali.html, kerzhakov_popal.html, novosti_rynka_IT.html, real_chempion.html
в этих страницах нет элементов <body> <head> итд, в них только собственно сами статьи, например:
<p><strong>Событие!</strong>вчера вот что произошло ......</p>

3. есть таблица, в которой разные статьи сопоставляются с разными пунктами меню основной страницы.
Например, если Политика - 1, Бизнес -2, Спорт-3, Технологии-4
то таблица будет такая
1, vybory2012.html
2, sberbank_prodali.html
3, kerzhakov_popal.html
4, novosti_rynka_IT.html
3, real_chempion.html

Теперь, на центральной странице если посетитель выбирает в меню "Политика", то программа идет в эту таблицу и показывает только те статьи, у которых в первой колонке таблицы стоит 1, ну итд

Причем центральная страница не перегружается, просто в ней в определенное место вставляются данные из одного или нескольких файлов html.

Тут можно использовать ajax, кроме того, конечно статью полностью не надо показывать, много чего еще можно сделать, но для упрощения задачи - ничего этого не надо. А просто только средствами javascript/jQuery взять данные из одного файла html (или нескольких файлов) и закинуть в определенное место в другом файле html.

Как это сделать?
Заранее спасибо за помощь!

dmitriymar 08.01.2013 19:06

делать аякс запрос получать данные фильтровать и вставлять.
но по большому счёту -правильно использовать базы. осуществлять поиск в базах и отдавать данные с использованием акякса

rusik 08.01.2013 19:50

я в общем почти так и делаю. Но я не хочу саму статью хранить в поле в базе. Я хочу чтобы в базе была такая табличка в которой был бы только номер или название статьи.

Затем я через ajax или как угодно по другому обращаюсь к базе и получаю не саму статью а только ее название или номер.

После этого javascript по этому названию (например, novosti_za_segodnya.html) находит файл и его содержимое вставляет в определенное место в центральном

Про ajax, про базу, и как вставить кусок информации в файл gazeta.html - я знаю.
я не знаю как обратиться к определенному файлу novosti_za_segodnya.html

dmitriymar 08.01.2013 20:13

так и обращайся как и аяксам(xhr) обращаешься к другим. получишь текст -html код ,какой легко можно вставить на страницу innerHTML

rusik 08.01.2013 22:00

а я к ajax обращаюсь через функцию jquery ajax. и она мне возвращает данные с сервера. А как обратиться к html ? Можете пример привести? Заранее спасибо!

rusik 08.01.2013 22:07

а зачем кроссдоменный? и вообще аякс? упрощенно задача выглядит так:
есть два файла html как из одного из них вставить содержимое в другой?

Deff 08.01.2013 22:11

rusik,
Достаточно простой на jQuery метод load
указываете селектор адрес страницы и селектор

Цитата:

$("#links").load("/Main_Page #jq-p-Getting-Started li");
Cиним селектор элемента куда будете подгружать контент, красным адрес подгружаемой страницы, зеленым селектор элемента с подгруженной страницы, который будете подгружать


Описание http://jquery-docs.ru/Ajax/load/#urldatacallback

rusik 08.01.2013 22:18

огромное спасибо!!!!

ruslan_mart 09.01.2013 05:25

А лучше статьи сделать в *txt и в php через fopen подгружать.

fenix_63 08.08.2016 11:46

У меня сейчас аналогичная проблема. Но вот только страница, ОТКУДА надо скопировать данные - формируется динамически, вернее появляется модальное окно, и уже из модального окна надо значения input'ов скопировать. Может знаете как это можно сделать?


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