如何在 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();
?>

javascript

<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 的响应。响应显示为&lt;a href=Another.php?&gt;Link&lt;/a&gt;。当我单击test.php 中的Another.php 链接时,它会在另一个窗口中加载。但我需要它加载相同的&lt;div&gt; &lt;/div&gt; 区域而不更改test.php 的内容,因为它有displayInfo(), displayDetails()。或者是否可以在 &lt;div&gt; &lt;/div&gt; 元素中加载 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:如何检测在其他窗口或应用链接中加载的页面?

Jquery load() 不会在 div 中加载脚本标签

如何摆脱jquery加载元素中的js

在同一个项目中加载多个 jquery 版本但不同的页面

无法在 Fancybox 中加载 YouTube 视频 - 空白页

PHP jQuery在WordPress中加载最新版本