2014-03-04 49 views
0

我正处于一个最后期限之下,所以我希望在我沿着任何路线前进之后,有人可以告诉我,我所做的事情是否可行,或者是否有简单/快速的方式来解决它:我可以通过php传递当前变量吗?如果是这样如何?

在使用手风琴菜单遇到一些问题后,我选择了使用几个菜单并用js替换每个菜单的临时修订。我不从我,但实质上有代码:

function change-menu(menu){ 
var new-menu = menu + ".php"; 
(#menu-area).load(new-menu); 
} 

(我只是做与JS一点的工作,到目前为止,请忽略上面的语法...我会尝试修复它。后来)

而且我的链接会是这样的:

<a onclick="change-menu('something')">Something</a> 

内侧面菜单是将在窗口区域加载和我只是用一个PHP保持它的简单作品缩略图包括那看起来像这样:

<a href="art.php?id=picture1&name=blahblah">[img goes here]</a> 

但我意识到,当我这样做时,我也应该通过菜单到下一页,以及它知道最初加载到新页面的菜单。但是,尽管如此,我还是过分分析了这一点 - 如果我想让体验流淌,并且以某种方式寻找某种方式,即使我现在正在编码它有点位移,我不希望有人按下后退按钮,让菜单开始打开和关闭不同的部分。

所以问题是: 有没有一种方法可以告诉PHP链接导入任何当前状态/侧边栏的值?我只是想确保侧面菜单只在用户点击时才改变,而不是按下后退或前进按钮。这是一个简单的行动?这是否是一种可能的行动?有更好的解决方案吗?

回答

0

不,你不能在PHP中做到这一点。改为使用Javascript。

+0

太棒了!并有机会可以详细说明这一点? 我之所以不专门与js合作,是因为我希望用户能够在项目之间来回切换。例如,如果他们点击图片1,图片1就会加载。如果他们然后点击图片2,图片2加载。但我希望他们能够回到图片1,如果他们击回 –

1

你应该看看AJAX来达到这个目的。使用AJAX,您可以从PHP页面获取新的HTML内容,然后使用JavaScript将AJAX返回的现有内容替换为侧边栏。通过这种方式,侧边栏的内容将被更改,而无需重新加载页面。

+0

谢谢!我在其他类似的解决方案中第一次尝试了AJAX功能,除了浏览器后退按钮没有按照我以后希望的方式工作(例如,如果您从图片1中单击图片2我希望BACK可以打包到图片1,而不是页面的初始加载),所以这就是为什么我认为php会更好,直到我意识到我的菜单正在使用后退按钮进行更改。你能否详细说明你会推荐什么?我很喜欢新手,并且随时了解情况。 –

+0

我不认为使用后退按钮导航是最好的方式。你可以做的是将以前的URL存储在某个地方(如会话变量)并使用此URL将用户重定向到上一页。您也可以使用JavaScript的'window.history.back()'函数或PHP的'header('Location:'。$ _SERVER ['HTTP_REFERER']);'回到上一页,但我不会推荐它们,因为的漏洞。 – Hemant

相关问题