2013-05-15 2 views
1

Мне действительно сложно начать работу с этой задачей.Как я могу успешно выполнить процедуру «Запомнить это действие»?

У меня есть 2 формы на одной странице.

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

Если в результатах поиска приводится несколько результатов, пользователь может нажать на ссылку Advanced Search.

Этот Advanced Search содержит несколько флажков, которые позволяют пользователям проверять один или несколько полей, чтобы сузить результаты поиска.

Это прекрасно работает.

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

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

Мое до сих пор, прежде всего, заключается в том, чтобы хранить SQL-запрос в переменной Session в PHP-коде.

Затем, когда пользователь нажимает на "Remember This Action" кнопку, что я собираюсь создать», я мог бы просто иметь мой PHP кодовая этой сессии значение переменной в куки.

Другими словами, я хотел бы сделать что-то вроде это:

$tsql = "SELECT Name, FeatType, 
     MinX, MinY, MaxX, MaxY 
     FROM mytable 
ORDER BY ListOrder, Name DESC"; 

Session("LastAction") = $tsql 

И затем есть "Remember This Action" кнопку пост на моей странице PHP, который просто делает:

Cookies("LastAction") = Session("LastAction") 
Cookies("LastAction").Expires = Date() + 365 ' expires in one year 

Наконец, я ча п обеспечивают кнопку «Повторить последнее действие» на наших страницах и все это делает

$tsql = Request.Cookies("LastAction") 
$stmt = sqlsrv_query($conn, $tsql); 

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

$tsql = "SELECT Name, FeatType, 
     MinX, MinY, MaxX, MaxY 
     FROM mytable 
ORDER BY ListOrder, Name DESC"; 

Session ("LastAction") = $ TSQL

я получаю "недействительные" ошибка

Session("LastAction") = $tsql 

Очевидно, что я очень, очень слабые на PHP, но прилагает все усилия, чтобы прийти к скорости.

Ваша помощь очень ценится

Я сделал некоторые шаги ребенка здесь.

Я могу получить это синтаксически корректен:

$_SESSION["LastAction"] = $tsql; 

Я также смог установить правильный

setcookie('LastAction',$_SESSION["LastAction"],time() + (86400 * 365)); // 86400 = 1 year 

Теперь, что эквивалентность этой строки в PHP?

$tsql = Request.Cookies("LastAction") 

Выше был мой лучший удар, но я не думаю, что это правильно.

Я в основном пытаюсь поставить кнопку "Remember Last Action" на другой странице.

Затем используйте:

$ TSQL = Request.Cookies ("LastAction")

, чтобы захватить значения из другой страницы на этой странице.

ответ

0

Что вы здесь делаете, это, в основном, сохранение SQL-запроса в файл cookie (редактируемые пользователем данные).

setcookie('LastAction',$_SESSION["LastAction"] /*We're saving the value, not the session. */,time() + (86400 * 365)); // 86400 = 1 year 

Несмотря на это, вместо того, чтобы дурачиться с воскресить сессии на основе sessid сохраненных в куках, я бы рекомендовал экономить поисковые флаги в печенье в качестве serialized массива, а затем просто сделать свой бег-off- когда вы должны повторно использовать его.

В принципе, вы можете сделать:

$saved_search = serialize($search_opts); 
setcookie('SavedSearch',$_SESSION["LastAction"],time() + (86400 * 365)); 

И обратный процесс,

$saved_search = $_COOKIE['SavedSearch']; 
$search_opts = unserialize($saved_search); 

Вам нужно будет выяснить, из вашего собственного кода, где топляк $ search_opts и как использовать их позже запустить поиск, так как я не вижу код, который делает эту часть тика.

+0

Получается длинный @mkumpan. Любые идеи, как сделать то, что вы рекомендовали? –

+0

Не все, нет, вам нужно выяснить, где взять параметры поиска из сохраненного вами пользователя самостоятельно (скорее всего, просто сохраните флаги из POST при создании запроса, связанного с поиском), и вам также придется выяснить код, который будет перестроить, выполнить и отобразить поисковый запрос из повторно используемых опций. Я, однако, подробно остановился на методе cookie/serialization в исходном ответе. –

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