如何在不重新加载整个页面的情况下重新加载 div?

Posted

技术标签:

【中文标题】如何在不重新加载整个页面的情况下重新加载 div?【英文标题】:How to reload a div without reloading the entire page? 【发布时间】:2011-11-02 18:05:02 【问题描述】:

我想我的问题对你们大多数人来说真的很容易。我想重新加载一个 div 而不重新加载整个页面。最好的方法是什么?

<div class="black_text" id="cp_in_content_div">
<?php
$id = $_GET["id"];
$result = mysql_query("SELECT * FROM Setting WHERE ID = $id");
$row = mysql_fetch_array($result);
switch ($_GET["action"])

    case "delete":
    if (!unlink("$_SERVER[DOCUMENT_ROOT]setting/$row[Filename]"))
    
        echo "Error.";
        header("Refresh: 2.5; URL=delete_setting.php?id=$id");
        exit();
    
    if (!mysql_query("DELETE FROM Setting WHERE ID = $id"))
    
        echo "Error.";
        header("Refresh: 2.5; URL=delete_setting.php?id=$id");
        exit();
    
    else
    
        echo "Ok!";
        header("Refresh: 1.25; URL=index.php");
    
    break;
    default:
    echo "form";

?>
</div>

我需要那些标题(“刷新:...”)只重新加载 div 而不是页面。

【问题讨论】:

欢迎来到 SO @Gabriele!您可以编辑问题以提供您正在处理的代码吗? @jas:我觉得他没有代码:) 【参考方案1】:
$("#div_element").load('script.php');

演示:http://sandbox.phpcode.eu/g/2ecbe/3

完整代码:

<div id="submit">ajax</div> 
<div id="div_element"></div> 
<script> 
$('#submit').click(function(event) 
   $("#div_element").load('script.php?html=some_arguments');  

); 
</script> 

【讨论】:

【参考方案2】:

jQuery.load() 可能是使用选择器异步加载数据的最简单方法,但您也可以使用任何 jquery ajax 方法(get、post、getJSON、ajax 等)

请注意,加载允许您使用选择器来指定要加载的已加载脚本的哪一部分,如

$("#mydiv").load(location.href + " #mydiv");

请注意,这在技术上确实会加载整个页面,并且 jquery 会删除除您选择的内容之外的所有内容,但这都是在内部完成的。

【讨论】:

如何在未加载整个 div 之前显示“loader.gif”。因为我的 div 非常大并且来自一个文件。所以大约需要2秒。如何在 jquery 完成任务之前显示loading... 之类的内容。 是否可以选择按标签而不是按 id 加载!? @Yasmine 你可以使用任何有效的选择器,即使$("div").load 应该可以工作,但请记住,这将选择页面上的 所有 div 并触发加载跨度> 【参考方案3】:

写一个按钮标签和点击功能

var x = document.getElementById('codeRefer').innerHTML;
  document.getElementById('codeRefer').innerHTML = x;

全部写在 onclick 函数中

【讨论】:

嗨,我试过这个来更新表格。但看起来桌子还是和以前一样。即使将新数据添加到表中,表数据也不会更新。 @Ambala Chandrashekar【参考方案4】:

使用这个。

$('#mydiv').load(document.URL +  ' #mydiv');

注意,在hastag前加一个空格。

【讨论】:

我可以用标签而不是 id 来调用它吗!!?

以上是关于如何在不重新加载整个页面的情况下重新加载 div?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不刷新整个页面的情况下重新加载组件?

如何在不重新加载页面的情况下刷新 div 和 mysql 代码

如何在不刷新整个页面的情况下让 Grunt/Watch/LiveReload 重新加载 Sass/CSS?

如何在不重新加载 HTML 页面的情况下重定向锚标记链接?

如何使用 Ajax 加载过滤后的数据,而无需在 laravel 中重新加载整个页面

如何在不重新加载页面的情况下更改页面 url