Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Сохранить таблицу в файл (https://javascript.ru/forum/jquery/41426-sokhranit-tablicu-v-fajjl.html)

Sveta 13.09.2013 09:17

Сохранить таблицу в файл
 
Доброе утро!)
Подскажите, пожалуйста..можно ли как-то таблицу JQUERY сохранять в файл? (Таблица на странице каждый раз новая, зараннее число ее строи и столбцов не известно, данные подгружаются по запросу getJson).

Tek 13.09.2013 09:52

http://javascript.ru/forum/misc/1198...avascript.html

Sveta 02.10.2013 09:12

Как я поняла такое можно сделать только средствами серверного языка...
Просто думала может в JQuery предусмотрели что-то такое.
Дело в том, что когда данные на страничку подгружаются через Ajax, то даже если я просто через браузер хочу сохранить эту страничку - сохраняются ее исходные коды, без полученных данных...то есть если мой пользователь хочет как-то сохранить данные, то ему только если принтскрин делать? (ну если я не напишу нужный код на php или java)

danik.js 02.10.2013 10:17

В современных браузерах можно и без серверной части. Firefox и Google Chrome точно. Насчет новых IE не помню. Потерял ссылку на демку к сожалению. Гугл поможет. На крайняк - маякните, я поищу еще раз.

Яростный Меч 02.10.2013 15:55

Цитата:

Сообщение от danik.js
В современных браузерах можно и без серверной части.

а как это выглядит для юзера? такой-же диалог сохранения, как и в случае с сервером?

danik.js 02.10.2013 16:07

http://eligrey.com/demos/FileSaver.js/

Яростный Меч 02.10.2013 16:26

спасибо, интересная штука, идею понял.

Sveta 16.10.2013 09:08

За ссылку спасибо, посмотрела)
Но мне нужно чтобы и в старых браузерах работало...например в IE у меня проход по ссылке сразу предлагает сохранить страничку.
В общем без серверного языка не обойтись.
У меня вопрос: задача несколько упростилась - у меня для таблицы данные приходят в виде JSON файла, мне нужно сохранить этот файл на машине клиента..я не совсем понимаю как это выглядит - мне сервер присылает JSON, я его обратно отсылаю серверу, сервер что-то делает и присылает мне его обратно...:blink: ........то есть вопрос в том как сохранить файл на машине клиента...

ksa 16.10.2013 09:39

Цитата:

Сообщение от Sveta
я не совсем понимаю как это выглядит - мне сервер присылает JSON, я его обратно отсылаю серверу, сервер что-то делает и присылает мне его обратно...

Когда тебе сервер прислал данные - ты их просто показываешь на странице. Это с файлом ну никак не связано.

Если нужно увиденое записать в файл - есть несколько вариантов, навскидку:
- пусть пользуется средствами браузера (Файл -> сохранить)
- сервер делает файл, а ты на странице показываешь ссылку на его скачивание
- сервер делает файл, а ты на странице показываешь ссылку на его "открытие"

В последнем варианте файл не "откроется" если на клиенте нет программ ассоциированых с расширением того файла...

Sveta 16.10.2013 14:14

Так понятнее, спасибо;)
Пока что сделала такой вариант - сервер присылает клиенту JSON по AJAX-запросу в новое окно, а пользователь средствами браузера его сохраняет.

Sveta 16.10.2013 15:04

никак не могу найти, можно ли как-то пользователю выдавать окно Открыть/Сохранить? а то у меня получается что файл сначала открывается в новом окне, а потом его уже сохраняют...не всегда пользователю нужно его сначала открывать....

ksa 16.10.2013 15:12

Цитата:

Сообщение от Sveta
у меня получается что файл сначала открывается в новом окне

Что до этого предлагается пользователю?

Sveta, меньше литературы - больше тестовых примеров. Шаманские бубны не вечны... :)

Sveta 16.10.2013 15:30

)))хорошо
Итак, перед пользователем табличка с данными, ему предлагается нажать кнопку "сохранить данные"
Сейчас у меня на нажатие кнопки такой код
$('#saveJson').click(function(){
		  if(subWin!=null) if(!subWin.closed) subWin.close();
		  subWin = document.open(dataRef,"_blank","status=yes,toolbar=no,menubar=yes,location=no,resizable=yes,scrollbars=yes");
	});

где dataRef возвращает json файл)
таким образом у меня окно с этим файлом открывается и пользователь сохраняет если хочет....а хотелось бы чтобы до того как откроется этот файл, можно было предложить пользователю Открыть - тогда делаем как есть или Сохранить - чтобы не открывая...словно он уже нажал Файл - Сохранить - чтобы у него сразу выскакивало окно - куда сохранить и под каким именем...

ksa 16.10.2013 15:36

Цитата:

Сообщение от Sveta
а хотелось бы чтобы до того как откроется этот файл, можно было предложить пользователю Открыть - тогда делаем как есть или Сохранить - чтобы не открывая..

Так работают только со ссылками типа

<a href="projectattachment.php?attachmentid=3008" target="_blank">ktm.rar</a>

Причем та страничка (projectattachment.php) так же не совсем проста... :)

ksa 16.10.2013 15:38

Sveta, т.е. это вопрос уже не в раздел "Библиотеки/Тулкиты/Фреймворки » jQuery"... :no:

Sveta 16.10.2013 15:54

ksa, спасибо) Да я понимаю что это уже не jquery...просто не хотелось другую тему создавать) - думала тут уже доразобраться и не думать об этом.

ksa 16.10.2013 16:04

Цитата:

Сообщение от Sveta
думала тут уже доразобраться

Это работа серверной части...

Sveta 18.10.2013 10:17

серверной части? я думала может вызвать диалоговое окно jquery с двумя кнопками (открыть и сохранить) на кнопку открыть навесить код, который у меня уже есть - т. е. открытие пришедшего с сервера файла в новой вкладке, а на кнопку сохранить...вот на нее и думала может есть какая функция, которая по сути имитирует что пользователь нажал файл/сохранить...т. е. средствами уже не серверного языка а яваскрипта....Т.е. НЕ СОХРАНЯТЬ за пользователя, а ВЫЗВАТЬ окно сохранения. Вот...:-?

danik.js 18.10.2013 10:51

Цитата:

Сообщение от Sveta
т. е. средствами уже не серверного языка а яваскрипта....

Дык я же кинул ссылку. Там идет сохранение средствами js. Правда это все очень некроссбраузерно.

Sveta 18.10.2013 11:02

А я посмотрела! и ответила))) "За ссылку спасибо, посмотрела)
Но мне нужно чтобы и в старых браузерах работало..."

danik.js 18.10.2013 11:16

Вам уже и на это дали ответ:
Цитата:

Сообщение от ksa
Это работа серверной части...

Итог: в браузерах нет кроссбраузерного способа форсировать загрузку средствами JS.
Есть еще вопросы?

Sveta 28.10.2013 08:36

:no:


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