如何在 jQuery 的同一窗口中加载 PHP 页面
Posted
技术标签:
【中文标题】如何在 jQuery 的同一窗口中加载 PHP 页面【英文标题】:How load a PHP page in the same window in jQuery 【发布时间】:2010-09-27 02:49:03 【问题描述】:我有一个 php 文件 Test.php,它有两个功能:
<?php
echo displayInfo();
echo displayDetails();
?>
<html>
...
<script type="text/javascript">
$.ajax(
type:'POST',
url: 'display.php',
data:'id='+id ,
success: function(data)
$("#response").html(data);
);
</script>
...
<div id="response">
</div>
</html>
它返回来自 jQuery 的响应。响应显示为<a href=Another.php?>Link</a>
。当我单击test.php
中的Another.php 链接时,它会在另一个窗口中加载。但我需要它加载相同的<div> </div>
区域而不更改test.php
的内容,因为它有displayInfo(), displayDetails()
。或者是否可以在 <div> </div>
元素中加载 PHP 页面?
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:如果我理解正确,您希望 a
链接取消导航,但触发 AJAX 功能?
在这种情况下:
$("#mylink").click(function()
$.ajax( type: "POST", url: "another.php", data: id: "somedata", function(data)
$("#response").html(data);
);
return false;
);
【讨论】:
【参考方案2】:克罗夫是正确的,
然而,一个可能的不良行为是每次点击链接时都会查询数据。您可以将事件设置为仅使用一次调用 ajax 查询。
$("#mylink").one('click', function()
// ajax call
return false;
);
不要忘记在链接中设置 href="javascript:" 以便在事件触发后链接不会执行任何操作;
【讨论】:
如果你通过返回false
来取消事件冒泡,实际上不需要href=""
部分。虽然我认为如果您想避免在 a
元素周围绘制轮廓(如果我没记错的话)会有所帮助。【参考方案3】:
您可以只使用MooTools 和类Request.HTML。
【讨论】:
以上是关于如何在 jQuery 的同一窗口中加载 PHP 页面的主要内容,如果未能解决你的问题,请参考以下文章
Javascript/jquery:如何检测在其他窗口或应用链接中加载的页面?