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

时间:2011-11-16 04:45:33

标签: php

我正在开发类似于facebook的社交网站。但是,我在编程中遇到了一个相当混乱的阶段。

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

现在,我想做facebook所做的事情,并允许用户在他们的个人资料页面上点击链接(信息,备注,照片),但实际上从未离开www.mywebsite.com/profile.php - 只需打印相应的内容到了屏幕。

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

5 个答案:

答案 0 :(得分:2)

您可以将Ajax用于此目的。

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

答案 1 :(得分:1)

答案 2 :(得分:0)

这必须通过Javascript和Ajax完成。

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

如果您这样做,请设置一个不依赖于javascript的后备选项,以防用户关闭JS。

答案 3 :(得分:0)

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

我自己读了一本关于Ajax初学者的好书:Head First Ajax。看起来你可以以大约10美元的价格购买一份旧书。这是一个很好的介绍,有一种古怪的风格,吸引一些人,作者尽其所能,以保持你的注意力。硬核程序员可能不喜欢这个,但我觉得你对游戏有点新意,这可能是一个很好的阅读。否则,Google "learning Ajax"并且有大量资源。

祝你好运!

要响应您的评论,您可以设置一个“路由器”脚本,该脚本接受输入并运行特定功能作为响应。这个“路由器”函数查看$ _GET []超全局的参数,如“action”,然后调用相应的函数。如果没有发送动作参数,则路由器调用默认函数。

现在再详细一点。您的页面脚本将包含3个基本部分:路由器,各种操作功能和页面模板功能。路由器只是从动作函数调用适当的函数,并将输出传递给模板函数。以下是一些例子。

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

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

这有助于您设想如何实现这一目标吗?

答案 4 :(得分:0)

您可以使用此参考...

function showdiv(id) {     如果(ID)     {

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


}

}

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