我真的很难开始这项任务。
我在同一页面上有 2 个表格。
第一个表单提供了一个搜索框,供用户输入几个搜索过滤器中的一个,例如地址、邮政编码、街道、土地,甚至州名。
如果搜索产生多个结果,则用户可以单击Advanced Search
链接。
这Advanced Search
包含几个复选框,允许用户选中一个或多个框以缩小搜索结果。
这很好用。
现在的问题是让用户能够“保存”他们的搜索结果,也许可以使用 cookie,以便下次用户加载此页面时,她/他上次保存的搜索结果将成为他/她的默认搜索页面,直到他们更改它或直到他们删除清除最后一个操作的 cookie。
这更像是记住用户上次搜索此页面时的最后操作。
到目前为止,我的想法首先是将 SQL 查询存储在 php 代码中的 Session 变量中。
然后,当用户单击"Remember This Action"
我要创建的按钮时,我可以让我的 php 代码将该会话变量值保存在 cookie 中。
换句话说,我会做这样的事情:
$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";
会话(“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")
将另一个页面中的值抓取到此页面中。