-1

我正在为一家制作公司制作一个小网站,当用户从我的菜单中点击导演的名字时,所有菜单项都会消失,只显示该导演制作的传记和作品。

我遇到的问题是我不知道如何将负责识别单击了哪个导演的javascript变量传递给php,以便它实际上可以从数据库中检索导演的信息......有没有办法做这没有 GET 或 POST,因为我试图在页面到页面的单个无缝动画中维护它?

为了澄清,我想将所有这些都包含在一个页面中,没有任何插页式页面

4

3 回答 3

2

您应该使用 AJAX 来实现这一点。虽然您仍然在技术上传递 GET 或 POST 变量,但这将是无缝的。

于 2012-09-06T04:55:08.273 回答
1

可能有各种基于脚本的解决方案,但它可以在没有脚本的情况下完成。

使用具有多个提交按钮的表单。给每个人一个唯一的名字,只有被点击的那个会与表单一起提交。

您还可以将每个导演的所有信息加载到页面中,只显示被点击的那个的信息,无需单独调用服务器。

或者,您可以使用 AJAX 请求。在请求中使用来自单击按钮的唯一标识符(例如其名称、id 或类),以便返回适当的信息。但与普通表单或仅显示或隐藏页面中已有的元素相比,此类功能需要更多工作并且更容易出错。

于 2012-09-06T04:48:38.283 回答
0

我认为 RobG 关于一次加载所有数据然后使用 JavaScript 隐藏/显示您想要的内容的建议是在这种情况下要走的路。

假设你有 3 位导演,你给了他们每个人一个 'div' 包含他们的简历和作品,每个 div 有一个 id='dir1'、'dir2' 和 'dir3'。它们都有一个名为“directorInfo”的类,并且在页面首次加载时使用属性 style='display:none' 隐藏。将有三个按钮对应于名为“but1”、“but2”、“but3”的每个导演,每个按钮的值 = 1、2 或 3,我也会给每个按钮一个 class='directorButtons ' 以便它们更容易与您的 JQuery 识别。

使用您的 JQ,将按钮绑定到单击事件。像这样:
$('.directorButtons').on('click', function(){
$('.directorInfo').hide();
$('#menuItems').hide();
$('#dir'+this.val()).show();
return false;
});
$('.close').on("click", function(){
//give the user a way to unhide the menu.
$('.directorInfo').hide();
$('#menuItems').show();
return false;
});

代码的第二部分是因为每个 div 也应该有一个关闭按钮,或者在带有 href='#' 和 class='close' 的 'a' 标签内有一个 X,这样当用户单击 X 时,它们将被带走回到开始,菜单将再次可见。

这是一个简单的例子,你可以调整它做很多事情(比如使用模态和动画)。这样做而不是使用 AJAX 还提供了即时响应而不是等待服务器响应的额外好处。

于 2012-09-06T05:52:12.300 回答