我正在为制作公司制作一个小网站,当用户点击菜单中的导演姓名时,所有菜单项都会消失,所有显示的内容都是该导演制作的传记和作品。
我遇到的问题是我不知道如何传递javascript变量来负责识别哪个导演被点击到php以便它可以实际从数据库中检索导演的信息...是否有没有GET或POST这样做的方法,因为我试图在页面到页面的单个无缝动画中维护它?
为了澄清,我希望在一个页面中包含所有这些,而不包含任何插页式页面
答案 0 :(得分:2)
您应该使用AJAX来实现这一目标。虽然你仍然在技术上传递GET或POST变量,但它将是无缝的。
答案 1 :(得分:1)
可能有各种基于脚本的解决方案,但它可以在没有脚本的情况下完成。
使用包含多个提交按钮的表单。给每个人一个唯一的名称,只有被点击的名字将与表格一起提交。
您还可以将每个导演的所有信息加载到页面中,只显示被点击的信息,无需单独调用服务器。
或者,您可以使用AJAX请求。使用请求中单击的按钮(例如,其名称,ID或类)中的唯一标识符,以便返回适当的信息。但是这样的功能比普通表单更容易出错,或者只是显示或隐藏页面中已有的元素。
答案 2 :(得分: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也可以立即响应,而不是等待服务器的响应。