AJAX生成的订单列表不能通过数据发布

时间:2017-02-12 10:21:41

标签: php jquery ajax codeigniter

我使用以下代码使用AJAX post获取OneDrive和子文件夹的根文件夹列表。

$(document).ready(function(){

    $(".driveFolders li").click(function(){
        var folderId = $(this).attr( "id" );
        var objlst=    $(this);
        var request;
        request = $.ajax({
            url: url,
            method: "POST",
            data: {'id': folderId},
            ContentType: 'application/json'
        });

        request.done(function( response ) {
            var result = jQuery.parseJSON(response);
            var html="";
            for(var i = 0, l = result.length; i < l; i++){
                var subFolderID = result[i].id;
                html += "<li  id="+subFolderID+"'>" + result[i].name +  "</li>";

            }
            $("#childern").html(html);
        });
    })
})

它返回所有文件和文件夹的列表。现在,我得到了AJAX来生成li元素的数据,我正在使用以下代码再次发送一个AJAX请求:

$(document).on("click", "#childern li", function () {

    var subFolderID = $(this).attr("id");

    var objlst = $(this);
    var request;
    request = $.ajax({
        context: this,
        url: url,
        method: "POST",

        data: { 'id': subFolderID },
        ContentType: 'application/json'
    });
    request.done(function (response) {

        var result = jQuery.parseJSON(response);

        var html = "";
        for (var j = 0, l = result.length; j < l; j++) {


        }
        $("#childern").html(html);
    });
});

它返回错误

  

文件夹不存在。

手动发送文件夹ID时,我会收到所有文件。这是我的控制器代码:

public function GetFolderContent(){

    $this->load->library('STOneDrive');

    if (!$this->stonedrive->is_Connected) {
        $refreshToken = "";
        $this->stonedrive->Reconnect($refreshToken);
    }

    $contents = $this->stonedrive->LoadRootFolders(urldecode($this->input->post('id')));
    $result = array();
    foreach($contents as $content){
        array_push($result,array('id' => $content->getId(),'name'=>$content->getName(),'size'=> ''));
    }

    echo json_encode($result);
}

2 个答案:

答案 0 :(得分:0)

将标签附加到li标签时出错: 改变

html += "<li  id="+subFolderID+"'>" + result[i].name +  "</li>";

以下

 html += "<li  id='"+subFolderID+"'>" + result[i].name +  "</li>";

答案 1 :(得分:0)

在ajax代码方法中,将类型替换为内容类型,并使用 dataType 替换。