我有一点问题。因此,在<div>
中检测到更改后,我正在使用Ajax将其他页面的内容加载到<select>
。
但问题是,我只想将该外部页面中的特定<div>
加载到我的主页面中。这是主页的代码:
<script type="text/javascript">
$(function(){
createListeSelectWithDefault("categorie", <?php echo getJsCategorieListe()?>);
});
function showListes(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","liste_result?q="+str,true);
xmlhttp.send();
}
</script>
<div id="content">
<div id="bloc">
<div id="title">Combiner</div>
<div class="mx">
<form name="new_combiner">
<select id="categorie" name="categorie" onchange="showListes(this.value)"></select>
</form>
</div>
<div class="mx">
<div id="txtHint">
</div>
</div>
</div>
</div>
这是我的外部页面:
<html>
<div> some other kind of text, no need to post it here, but can't take it away</div>
<div id="mainDiv">
<?php
$q=$_GET["q"];
$liste = getListeByCategorie($q);
echo "<table border='1'>
<tr>
<th>Titre</th>
<th>Vues</th>
</tr>";
foreach($liste as $row)
{
echo "<tr>";
echo "<td>" . $row->titre() . "</td>";
echo "<td>" . $row->vue() . "</td>";
echo "</tr>";
}
echo "</table>";
?>
</div>
<div> some other kind of text, no need to post it here, but can't take it away</div>
所以你去了,仅此而已。我该怎么办?我只想将<div id="mainDiv">
加载到我的页面中。
答案 0 :(得分:1)
请更彻底地研究API。这个特殊的用例已经包含在内。
点击此处: http://api.jquery.com/load/
(参见“加载页面碎片”页面上的部分)
从API页面:
$('#result').load('ajax/test.html #container');
这会将带有id容器的div 加载,从外部页面test.html加载到请求页面上带有id结果的div。没有比这更简单(根据您的要求更改外部文档选择器)。