我知道有一种JQuery方式可以做到这一点,但这不是我现在所需要的。
我有以下javascript将页面内容拉入div,但我不想要整个页面,只需要来自该页面的DIV内容:
function ahah(url, target) {
document.getElementById(target).innerHTML ='<img src="ajax-loader.gif"/>';
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (req != undefined) {
req.onreadystatechange = function() {ahahDone(url, target);};
req.open("GET", url, true);
req.send("");
}
}
function ahahDone(url, target) {
if (req.readyState == 4) { // only if req is "loaded"
if (req.status == 200) { // only if "OK"
document.getElementById(target).innerHTML = req.responseText;
} else {
document.getElementById(target).innerHTML=" Error:\n"+ req.status + "\n" +req.statusText;
}
}
}
function load(name, div) {
ahah(name,div);
return false;
}
然后我称之为:
<a href="page.php" onclick="load('page.php','ajaxcontent');return false;" class="slide_more">LOAD</a>
哪里应该指定我想从page.php加载的选择器?
答案 0 :(得分:2)
通常在AJAX应用程序中,为了获取HTML片段,服务器是返回片段而不是在客户端选择它的人。例如,请参阅第4节中的Simple Example。酷AJAX示例。以下提供了网站上的代码供您参考:
<?php
function validate($name) {
if($name == '') {
return '';
}
if(strlen($name) < 3) {
return "<span id=\"warn\">Username too short</span>\n";
}
switch($name) {
case 'bob':
case 'jim':
case 'joe':
case 'carol':
return "<span id=\"warn\">Username already taken</span>\n";
}
return "<span id=\"notice\">Username ok!</span>\n";
}
echo validate(trim($_REQUEST['name']));
?>
请注意,PHP页面只返回一个仅包含<span>
的HTML片段,而不是完整的html。这是AJAX调用的一个好处,您无需返回整页,从而节省带宽成本,因为有效负载较小