irene221b: (Default)
[personal profile] irene221b
PHP кто-нибудь знает? Нужен совет. ("Сделай это на каком-нибудь другом языке" советом не считается :-))

Формулирую вопрос:

Есть страничка с данными, допустим, похоже на результаты поиска в гугле. Внизу странички переходы вперед-назад по результатам.

А сверху странички - фильтр для данных. Куча чек-боксов с кнопкой Submit.
Иплементировано это как форма, куда через POST уходит array этих чек-боксов.

Вопрос - как передавать этот array при навигации Next/Previous? T.e., чтобы данные фильтровались не только на первой странице, но и везде вплоть до отмены фильтра.

considered harmful

Date: 2009-08-24 10:32 am (UTC)
ext_615659: (Default)
From: [identity profile] akuklev.livejournal.com
Очень, очень жаль, что советом не считается. Perl, Python, Ruby -- тут я к Вашим услугам. Но не PHP, увы-увы.

Re: considered harmful

Date: 2009-08-24 10:46 am (UTC)
From: [identity profile] irene221b.livejournal.com
Ну увы. Это не мой мопед, мне на нем дали только зеркальце протереть.

Date: 2009-08-24 10:37 am (UTC)
From: [identity profile] i-r-e-n-e.livejournal.com
У меня есть знакомые спецы по пхп. Формулируй вопрос, озадачу их.

Date: 2009-08-24 10:44 am (UTC)
From: [identity profile] irene221b.livejournal.com
Сформулировала, см. апдейт. :-)

Date: 2009-08-24 06:44 pm (UTC)
From: [identity profile] i-r-e-n-e.livejournal.com
Ириш, передам твой вопрос уже завтра, а пока расскажу то, что знаю сама. Году в 1998 примерно участвовала в проекте "Украина Промышленная", мы там делали базу данных по промышленному оборудованию, запчастям и материалам с мощным поиском. Я делала базу для внутреннего использования (операторами и менеджерами), а на ее основе, с полным копированием структуры базы и поискового движка, другие ребята писали на пхп интерактивную веб-страничку.
Там фильтр тоже был многопараметрический, с кучей галочек и ключевых слов, выбираемых из списка и вводимых с клавиатуры, и выбором логических операций и т.п. и этот фильтр надо было фиксировать на некоторое время вплоть до отмены.
Я не знаю, как это обычно делают программисты на пхп, но в нашем случае мы создали специальную таблицу в базе данных, где коду пользователя (в веб-версии - АйПи) сопоставлялся его актуальный фильтр. Который хранился даже после завершения сеанса - вплоть до сброса пользователем. И который применялся всякий раз ко всем давнным при открытии всех форм (страниц).

Date: 2009-08-26 10:13 am (UTC)
From: [identity profile] irene221b.livejournal.com
База у нас есть, но это надо было сделать чисто client-side. Но я осилила, через сессии.

Date: 2009-08-26 11:15 am (UTC)
From: [identity profile] i-r-e-n-e.livejournal.com
Ну вот и славно.

А там внизу странички анонимус - это как раз тот человек о котором я говорила написал.

Date: 2009-08-24 10:48 am (UTC)
From: [identity profile] piramidon.livejournal.com
Можно в ссылку добавить переменные, с POST или GET. Сейчас попробую вспомнить, как я это делал 8-)

Date: 2009-08-24 10:49 am (UTC)
From: [identity profile] irene221b.livejournal.com
С Get можно, но не массив же?

Date: 2009-08-24 10:57 am (UTC)
From: [identity profile] piramidon.livejournal.com
Мне казалось, что с массивом так же работает, просто считываешь в переменную. Нет?

Date: 2009-08-24 07:06 pm (UTC)
From: [identity profile] yegorm.livejournal.com
Можно передать и по одному чекбоксу. Также можно для компактности упаковать значения в INT , а "на той стороне" распаковать как здесь: http://mediumexposure.com/node/18

Date: 2009-08-24 10:56 am (UTC)
From: [identity profile] piramidon.livejournal.com
Ага. Ссылка должна выглядеть так:

echo ("<a href='page.php?peremennaya=$imya'>;


На целевой странице вытаскиваешь:

$_GET['peremennaya'];


Это то, что надо?

Date: 2009-08-24 10:57 am (UTC)
From: [identity profile] ahaxopet.livejournal.com
Через cookie можно. На каждый POST сервер будет выдавать клиенту новую печенюшку, в которой закодировано состояние массива.

Date: 2009-08-24 11:06 am (UTC)
From: [identity profile] glebby.livejournal.com
Если можно форму не через пост посылать, а через GET, то было бы проще всего.
В навигационные ссылки подставляешь полный адрес с querystring, с заменой только параметра номера страницы, и все...

Иначе или ручками URL собирать или скинуть весь POST в строку через var_export(), и пересылать ее, а потом из нее восстанавливать, но это уже извращение и несекьюрно.

Date: 2009-08-24 03:45 pm (UTC)
From: [identity profile] irene221b.livejournal.com
Если можно форму не через пост посылать, а через GET, то было бы проще всего.

Натюрлих, но мне нужно знать, какие из этих опций были selected, а это только POST дает.

Date: 2009-08-24 05:18 pm (UTC)
From: [identity profile] glebby.livejournal.com
Да вроде как в теории это по барабану, пост или гет, но это нужно уже код смотреть...

COOKIES || AJAX

Date: 2009-08-26 10:06 am (UTC)
From: (Anonymous)
Я-бы делал все таки с использованием AJAX'a (в запросе передаем эти чекбоксы и номер текущей страницы, хотя если я правильно понимаю то при изменении чекбокса номер странцы всегда будет первым (ну или нулевым), и наполнение страницы, и сам previous|next, да и чекбоксы строил динамически (javascript)

тут был совет еще через куки - тоже реально...

но через голый PHP я думаю эта задача становиться академической.. т.е. будут признаки и GET и POST.

Re: COOKIES || AJAX

Date: 2009-08-26 10:16 am (UTC)
From: [identity profile] irene221b.livejournal.com
Удалось через сессии передать.

Profile

irene221b: (Default)
irene221b

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28 293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 4th, 2026 07:58 am
Powered by Dreamwidth Studios