发新贴  快速回复

关于ajax

苗大大
2014-11-21 22:29



为什么会这样
无为
贴完整代码。。。
2014-11-22 00:30  回复本帖
老王爱js
把你请求返回的data数据贴上来看下!
2014-11-22 02:21  回复本帖
苗大大
forum.php?mod=redirect&goto=findpost&pid=32563&ptid=10318
贴完整代码。。。

就是那个ajax教程里面的瀑布流的代码
这个是getpics.php
<?php
header('Content-type:text/html; charset="utf-8"');


$cpage = isset($_GET['cpage']) ? $_GET['cpage'] : 1;

$url = 'http://www.wookmark.com/api/json/popular?page=' . $cpage;

$content = file_get_contents($url);
$content = iconv('gbk', 'utf-8', $content);

echo $content;

?>

这个是
1.pbl.html

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
body {margin: 0;}
#ul1 {width: 1080px; margin: 100px auto 0;}
li { width: 247px; list-style: none; float: left; margin-right: 10px; }
li div {border: 1px solid #000; padding: 10px; margin-bottom: 10px;}
li div img { width: 225px; display: block;}
</style>
<script src="ajax.js"></script>
<script>
window.err= = function() {
    
    var oUl = document.getElementById('ul1');
    var aLi = oUl.getElementsByTagName('li');
    var iLen = aLi.length;
    var iPage = 1;
    var b = true;
    
    //初始化数据处理
    getList();
    
    function getList() {
        ajax('get','getPics.php','cpage=' + iPage,function(data) {
        
            var data = eval('('+data+')');
            alert(data)
            /*if ( !data.length ) {
                //后续没有数据了
                return ;
            }
            
            for ( var i=0; i<data.length; i++ ) {
                
                //获取高度最短的li
                var _index = getShort();
                
                var oDiv = document.createElement('div');
                var oImg = document.createElement('img');
                oImg.src = data[i].preview;
                oImg.style.width = '225px';
                oImg.style.height =  data[i].height * ( 225 / data[i].width ) + 'px';
                oDiv.appendChild( oImg );
                var oP = document.createElement('p');
                oP.innerHTML = data[i].title;
                oDiv.appendChild( oP );
                
                aLi[_index].appendChild( oDiv );
                
            }
            
            b = true;*/
            
        });
    }
    
    /*window.onscroll = function() {
        
        var _index = getShort();
        var oLi = aLi[_index];
        
        var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
        
        if ( getTop( oLi ) + oLi.offsetHeight < document.documentElement.clientHeight + scrollTop ) {
            
            if ( b ) {
                b = false;
                iPage++;
                getList();
            }
            
        }
        
    }
    
    function getShort() {
        var index = 0;
        var ih = aLi[index].offsetHeight;
        for (var i=1; i<iLen; i++) {
            if ( aLi[i].offsetHeight < ih ) {
                index = i;
                ih = aLi[i].offsetHeight;
            }
        }
        return index;
    }
    
    function getTop(obj) {
        var iTop = 0;
        while(obj) {
            iTop += obj.offsetTop;
            obj = obj.offsetParent;
        }
        return iTop;
    }*/
    
}
</script>
</head>

<body>
    <ul id="ul1">
        <li></li>
          <li></li>
        <li></li>
        <li></li>
    </ul>
</body>
</html>



这个是ajax.js
function ajax(method, url, data, success) {
    var xhr = null;
    try {
        xhr = new XMLHttpRequest();
    } catch (e) {
        xhr = new ActiveXObject('Microsoft.XMLHTTP');
    }
    
    if (method == 'get' && data) {
        url += '?' + data;
    }
    
    xhr.open(method,url,true);
    if (method == 'get') {
        xhr.send();
    } else {
        xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
        xhr.send(data);
    }
    
    xhr.onreadystatechange = function() {
        
        if ( xhr.readyState == 4 ) {
            if ( xhr.status == 200 ) {
                success && success(xhr.responseText);
            } else {
                alert('出错了,Err:' + xhr.status);
            }
        }
        
    }
}

2014-11-23 10:24  回复本帖
苗大大
forum.php?mod=redirect&goto=findpost&pid=32563&ptid=10318
贴完整代码。。。

= = 老师 怎么没回复我啊?{:soso_e109:}
2014-11-24 18:34  回复本帖
无为
forum.php?mod=redirect&goto=findpost&pid=32670&ptid=10318
= = 老师 怎么没回复我啊?

var data = eval('('+data+')');这句话先注释掉,先不要用 eval ,直接把 data 的内容弹出来看看。
2014-11-24 22:03  回复本帖
苗大大
forum.php?mod=redirect&goto=findpost&pid=32676&ptid=10318
这句话先注释掉,先不要用 eval ,直接把 data 的内容弹出来看看。

是那个url不能用了

//var data = JSON.parse(data);这个玩意是不是只有下载了json.js才能用啊
2014-11-25 10:59  回复本帖
无为
forum.php?mod=redirect&goto=findpost&pid=32693&ptid=10318
是那个url不能用了

//var data = JSON.parse(data);这个玩意是不是只有下载了json.js才能用啊


html5中可以直接使用。。。
2014-11-25 16:06  回复本帖
苗大大
<!DOCTYPE html> 这样就可以直接使用了么
2014-11-25 16:43  回复本帖
登录 后才可以发表回复