【问题标题】:How load a PHP page in the same window in jQuery如何在 jQuery 的同一窗口中加载 PHP 页面
【发布时间】: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 页面?

我该如何解决这个问题?

【问题讨论】:

    标签: php jquery ajax


    【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-03
        • 1970-01-01
        • 2019-06-25
        • 2011-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多