繁体   English   中英

通过链接在页面上加载新内容而不更改URL

[英]Loading new content on the page via a link without changing the URL

我正在类似Facebook的社交网站上工作。 但是,我在编程中面临一个相当混乱的阶段。

注册/登录/登出页面/脚本已完成,您可以使用www.mywebsite.com/profile.php查看配置文件。

现在,我想做Facebook要做的事情,并允许用户在个人资料页面上单击链接(信息,注释,照片),但实际上从不离开www.mywebsite.com/profile.php-仅在屏幕上打印适当的内容。

怎么做? 我不是在要求任何人为我编写代码,只是向我指出正确的方向!

您可以为此目的使用Ajax。

将要替换的内容放在div中,然后使用ajax替换该div,仅发送该内容。

那必须通过Javascript和Ajax完成。

单击链接后,将触发JavaScript函数。 一个ajax请求被发送到相应的php脚本,该脚本将响应返回给您的javascript函数。 然后,您解析此响应并将其放在屏幕上。

如果您采用这种方式,那么在用户关闭JS的情况下,还有一个不依赖javascript的后备选项。

为此,您需要一种称为Ajax的技术,该技术是异步JavaScript和XML的简称。 基本思想是,当用户执行某项操作(在您的情况下,单击链接或按钮)而不是加载页面时,将运行脚本,该脚本调用服务器端脚本以发送回一些数据。 这有时是XML,但您也可以获取其他类型的数据。 异步部分是,用户和页面可以在等待脚本返回所需数据的同时继续做其他事情。

我读过一本适合Ajax初学者的好书: Head First Ajax 看起来您可以以10美元左右的价格拿起二手副本。 这是一个不错的介绍,具有一些古怪的风格,吸引了一些读者,并且作者竭尽所能来吸引您的注意。 硬核程序员可能不会喜欢这一本书,但是我觉得您对这款游戏来说是新手,这可能是一本好书。 否则, 谷歌“学习Ajax”并且有不计其数的资源。

祝好运!

要回复您的评论,您可以设置一个“路由器”脚本,该脚本接受输入并运行特定的功能以进行响应。 此“路由器”函数在$ _GET []超全局变量中查找诸如“ action”之类的参数,然后调用相应的函数。 如果未发送操作参数,则路由器将调用默认功能。

现在更多细节。 您的页面脚本将包含3个基本部分:路由器,各种操作功能和页面模板功能。 路由器只是从动作函数中调用适当的函数,然后将输出传递到模板函数中。 这里有一些例子。

用户到达页面index.php。 没有指定动作,因此路由器找到$ _GET ['action'] ==''并调用default_action()。 这将返回一个欢迎消息,状态等信息,路由器会将此输出传递给显示页面的功能,包括输出。

现在,用户单击链接/按钮进行更新,然后到达index.php?action = update。 $ _GET ['action'] =='update',因此路由器调用update_action()。 输出继续显示模板功能。

这是否有助于您设想如何实现此目的?

您可以使用此参考...

函数showdiv(id){if(id){

var selected_offer="yourpagename.php"
HTML_AJAX.replace('divname',selected_offer);


}

}

在链接的onChange()函数上调用showdiv。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM