Что делать, если...

Dam

Guest
Т. е. каждый раз как только юзер обращается к БД, страница у него должна перегружаться?
 

Crazy

Developer
Можно перегружать что-то отличное от самой страницы: картинку на странице, невидимый фрейм, использовать java applet, команда которому отправляется из JS, Flash (аналогично).
 

Dam

Guest
К чему я это веду: как же тогда послать запрос к БД не используя submit, т.е. не пересылая на сервер.
И вообще это возможно?
 

Alkinoy

Guest
Автор оригинала: Dam
К чему я это веду: как же тогда послать запрос к БД не используя submit, т.е. не пересылая на сервер.
И вообще это возможно?
В последнее время я стал аккуратен в ответах, так как по ушам уже получал :) . НО! Ты хочешь передать на сервер запрос к БД. И его тебе естессно надо послать на сервер. А результат вывести к клиету в окно. И переменную (какую то) передать скрипту РНР на сервере. Так в чем суть проблемы? Пусть в запросе к серверу будет добавлен какой то параметр со значением твоей переменной. И РНР его запросто увидит и подставит в запрос. Народ правильно говорит - JS выполняется на компе у ЮЗЕРА, а РНР - на СЕРВЕРЕ. И никак, кроме как передачей запросов, данные из JS в РНР не передадуться. Что ты собственно хочешь сделать, напиши. Сдается мне, что это что то типа самообновляющейся странички, которая с течением времени выводит разные данные... Напиши, плз, СЛОВАМИ. А код потом приложим...
 

Dam

Guest
Вот в чём дело, Alkinoy.
Есть небольшая БД (60 кб), похожая на оглавление книги (т.е. сначала главы, в свою очередь главы включают в себя подглавы, те делятся на разделы и т.д.- максимум 3 уровня вложенности). Конечно желательно чтобы главы открывались, когда по ним кликаешь, и всё в таком духе... ты уже наверняка такое встречал если не в Инете, то в проводнике Винды.
Так вот всю базу - 60 кило конечно юзеру нежелательно пересылать. Но если всё оставить на сервере, появятся другие минусы - каждый клик будет перегружать страницу.
Поэтому я часть БД оставил на сервере ~ 50 кб (это последний уровень вложенности в БД). Остальную же сделал на JS.
На JS всё работает нормально, но как только начал делать взаимодействие с PHP (новый для меня язык) возникли проблемы -
При каждом submit страничка обновляется, не запоминая, что было открыто раньше (всё это конечно можно решить пересылая множество переменных, но я не думаю, что этот путь - оптимальный). Другой же путь, о котором я написал в начале - скорее всего нерабочий.
Что делать?
 

Crazy

Developer
Автор оригинала: Dam
К чему я это веду: как же тогда послать запрос к БД не используя submit, т.е. не пересылая на сервер.
И вообще это возможно?
Отдел научной фантастики -- в следующем зале.
 

Dam

Guest
Ладно, Crazy, а по моему предпоследнему сообщению у тебя есть что-то полезное (только без цитат).
 

RomikChef

Guest
Дам, если база весит 60 килобайт, то не мучайся и посылай всю.
У стебя страница с твоими яваскриптами больше будет весить.

И еще. Для вопросов "как что-то сделать на ЯВАСКРИПТЕ" тут есть специальный ДРУГОЙ ФОРУМ. Разуй глаза, найди, и задавай свои вопросы в нем.
 

Alkinoy

Guest
Вариант: присвой каждому пункту твоего меню значение 2**n, где n - порядковый номер пункта. При открытом пункте ему будет соответствовать это число, при закрытом - 0. Т.е по сути дела - позиционный код в двоичной системе. И при клике на каком то пункте собери суммарное число - сумму всех пунктов. И посылай это число вместе с запросом. А при ответе оно прийдет назад, и скрип на яве уже будет смотреть - открываться ему, или нет. Или сразу посылай обновленную странцу. Так ты обдним числом сразу передашь состояние твоего меню. Ну типа как на матричном принтере управляют иголками - тоже одним числом, переданном принтеру можно включить произвольное сочетание иголок. Если число большое получается - посылай строку символов.
Ну в общем это просто вариант. Думаю, идею ты понял.
 

Dam

Guest
Дело в том что на этой странице будут ещё несколько аналогичных баз, может даже больших.
 

RomikChef

Guest
я думаю, что идею он не понял :)
ты тут новичков такими словами, как "позиционный код в двоичной системе" не пугай :))))

И ты сам вопроса не понял. У него что, юзеры - роботы? в меню на странице им тоже двоичный код писать?

вопрос, в том, как подгружать на страницу новые данные в результате выбора юзера, а не в том, как поменьше отправить.

Dam
Яваскрипт - хорошая штука. Открытая.
ты уже наверняка такое встречал если не в Инете
Вот пойди туда, где встречал, и посмотри, как там делано.
 

Alkinoy

Guest
2РомикШеф
Да понял я все. Просто если он говорит, что не хочет подгружать последний уровень ИЗЗА БОЛЬШОГО ОБЪЕМА, то когда пользователь все таки захочет его подгрузить (т.е. выберет последний пункт) нет особой необходимости именно подгружать недостающие элементы, можно тогда уже и все по новой загрузить. А ему очень надо сохранить ВИД меню, т.е. какие пункты были открыты, а какие нет. И не хочет много переменных слать (для каждого пункта/подпункта). Вот пусть и посылает только ОДНУ переменную, в которой сохраняется все состояние его меню...
 

RomikChef

Guest
Хорошо, с двоичным кодом тебе все ясно. я рад.
По другим вопросам тоже все ясно?
 

Dam

Guest
Да всё понятно, было очень познавательно.
И всем кто принял участие в обсуждении темы, а также тем кто просто при этом присутствовал, огромное спасибо!
А тебе, Alkinoy, отдельное спасибо за предложенное решение!
 
Сверху