php - 不知道如何解决这个 javascript/图像映射/PHP 问题

标签 php javascript jquery mysql html

我正在尝试找出最好的或最有效的方法。

我的网站在服务器端用 PHP 编写,在客户端使用 MySQL 数据库并使用 javascript 和 jQuery。

用户来到这个包含图像 map 的特定页面(即map.php)。该 map 上有五个不同的可点击区域。每个区域都有一个图像队列,这些图像将进入队列,当用户单击图像时按顺序加载每个图像。例如,如果单击区域 A,则可能会生成队列 A1.jpg、A2.jpg、A3.jpg、A4.jpg、map.jpg。首先,它会加载图像 A1.jpg,当用户单击该图像时,它会加载 A2.jpg 等。最后一个图像将它们返回到主 map 。

当他们单击主 map 上的五个区域之一时,javascript 会删除所有可单击区域并创建一个新区域,该区域是用户单击的整个图像。返回到map.jpg 还会重新添加五个图像 map 区域。

让事情变得更复杂一些。 5 个区域都没有相同的队列,您可能不会一直返回到相同的图像队列。

例如,第一次单击区域 A 时,您可能会浏览 A1、A2、A3、A4 和 map 。他们第二次返回 A 时,队列可能是 A3、A4、 map 。通过查看外部页面(map.php 之外)的触发器可能会将下一个队列变成 A5、A3、A4 或 A6、A3、A4 或 A7、A3、A4。最终图像队列可能是 A8、A9、A10、A11、A12、...A18。

图像映射区域B、C、D和E都可以有不同的图像队列。

现在我正在考虑如何做到这一点,但无论我如何尝试编写它,它似乎都过于复杂,必须有更好的方法。我想到可能将每个可能的图像队列存储在数据库中,然后将每个用户所处的“状态”存储在map.php上。但数据库状态可能需要更改,并且由于前端是用 JavaScript 编写的,我不确定如何执行此操作。还有一个问题是预加载图像以使其尽可能平滑。

这就是为什么我来这里尝试征求想法和意见,尝试并交换想法以帮助我想出更好的方法来做到这一点。

最佳答案

听起来您正在克隆谷歌地图。

您可以尝试将状态服务器端存储在 session 中。当用户单击 A1 时,您会执行一个 ajax 请求,告诉服务器 A1 已被单击,服务器会响应 A1 放大区域的图像列表。

这样,当用户单击缩小时,服务器可以根据先前单击的区域以正确的图像集进行响应。

您可以考虑将图像存储在分层数据库中。因此,图像 A1 具有 A 的父图像。您单击 A 上的缩放,执行查询以获取具有 A 的父图像的所有图像,这将为您提供新 map 。

类似地,当您单击“缩小”时,您会在 session 中存储 A,因此您将获得与 A 具有相同父级的所有图像。

因此,您需要在 session 中存储的只是队列中单击的图像。放大时插入队列,缩小时弹出队列。

关于php - 不知道如何解决这个 javascript/图像映射/PHP 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4661549/

相关文章:

php - 访问类内函数中声明的变量 (PHP)

php - Capistrano 中的回滚代码……用于 PHP 项目

javascript - Cordova 3.6.3 File plugin - 在android上获取本地视频文件

javascript - 如何从infowindow获取<a href ='callto:' +phone+'>到mysql

单击标签时 jQuery Click 会触发两次

php - 在 wordpress 中的特定帖子类型下插入值之前,我是否需要注册帖子类型?

php - codeigniter 添加回引用查询

javascript - 动态更改 APEX_ITEM。 Oracle 顶点中的 TEXT 值

php - wp_ajax_nopriv 不工作 WordPress

javascript - 单击图像调整图像大小