2010-07-12 3 views
2

Теперь это требование может показаться странным. Но я хотел бы знать, как это достичь?
У меня есть HTML-файл, который имеет небольшое поле ввода, флажок, переключатель и т. Д. Я хотел бы сохранить изменения, которые пользователь [фактически я] выполняет на этой странице. Например, если пользователь отметит флажок, а в следующий раз, когда кто-нибудь откроет этот файл, этот флажок должен быть отмечен галочкой.Как сохранить входные значения HTML-страницы?

Эта вещь может быть легко выполнена с использованием HTTP-файлов cookie. Но я не хочу использовать файлы cookie.
Ответ может быть столь же просто, как «Нет вы не можете сделать это» :)

Редактировать
Это проблема не формулируя вопрос правильно.

Я думаю, я не могу использовать БД, как если бы я пришлю свою страницу HTML кому-то, то он/она не сможет увидеть мои изменения. Я хочу, чтобы мои изменения отражались и на других системах. [это причина, по которой я не собирался использовать файлы cookie]. Другое решение, о чем я думал, это использование FileSystemObject. Любое другое решение? снова ответ может быть «Нет, вы не можете этого сделать»: D

ответ

2

Вы можете связать события изменений ваших элементов формы с отправкой AJAX, зарегистрировать отправления в db, а затем на любой странице загрузить захват последние состояния из db для рендеринга.

Редактировать

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

Сказав, что если вы дадите им ссылку на сервер, а не файл, то они будут см. Ваши изменения в db.

Однако, это звучит, как вы хотите на самом деле отправить файл (не послать кого-то на веб-сервер), в этом случае вы могли бы сделать что-то вроде одного из этих подходов:

  • Ваш PHP/любой файл, (возможно, даже сделать это с помощью javascript) выводит HTML-файл с соответствующими checked="checked", selected="selected", value="blah" и т. д. Вы отправляете этот файл.

  • Ваш PHP/любой файл выводит статический файл ссылки. В вашем файле HTML есть ссылка на javascript и использование значений, хранящихся в этом файле. Вы отправляете оба этих файла (хотя для обновления значений требуется только изменение статического файла ссылки).

+0

Мне нравится ваш ответ, но я хотел бы задать свой вопрос :) –

+0

+1 anyways ..... –

+0

Добавлено обновление, дайте мне знать, если он находится на треке –

0

Вам нужен способ идентификации пользователя, когда он или она посещает снова. Куки-файлы браузера полезны, поскольку они хранятся на компьютере пользователя, который служит идентификацией. Другим серьезным вариантом является сохранение пользовательских настроек в базе данных. Это потребует, по крайней мере, серверного языка. Кроме того, вам нужен способ идентифицировать пользователя, например имя пользователя или, что менее надежно, IP-адрес.

Я слышал, что другие варианты могут существовать в HTML5, но я не думаю, что к этому моменту можно серьезно относиться. Вы можете прочитать об этом здесь, в Offline Web Applications. Мне кажется, что-то очень похожее по духу, хотя и гораздо более мощное, чем печенье.

1

Похоже, вы хотите изменить фактический файл с помощью Javascript - это должно быть довольно сложно. Javascript был разработан с нуля как язык веб-скриптов, и поэтому он не имеет встроенных функций file/IO.

Что вы можете сделать в Javascript - это загрузить объекты ActiveX и подключаемые модули. Как это работает, многое зависит от того, какой браузер вы используете. Например, в IE можно загрузить объект ActiveX (написанный в VB или любой другой), которые могли бы изменить файл:

var fileWriter = new ActiveXObject("My.FileWriter"); 
fileWriter.Update("myFile.htm", "inputName", "newValue"); 

Вы должны были бы написать FileWriter утилиту, хотя.

В качестве альтернативы вы можете использовать HTML5's new data storage stuff - но тогда вы по-прежнему ограничены в браузере.

+0

'-1' для ActiveX, извините. –

+0

@ Delan Azabani - Это немного несправедливо! Я бы никогда не рекомендовал ActiveX в обычном веб-приложении, но, учитывая то, что он пытается сделать (то есть имеет Javascript в файле HTML на диске, который меняет этот файл), у него не так много вариантов. – Keith

+0

Справедливо, я понимаю, что вы имеете в виду. :) –

Смежные вопросы