du5591 2017-11-12 16:58
浏览 101

使用ajax从两个不同的while()循环中获取多个数据

Once clicked a button make an ajax consult that's connected to a php file that has the following script:

$getserverstream = MYSQL_::Bits("SELECT * FROM `aportations_servers` WHERE `type` = 'stream'");
while($gotservers = mysqli_fetch_assoc($getserverstream))
{
    $serverhost = $gotservers['content'];
    $aaSQLa = MYSQL_::Bits("SELECT * FROM series_aportations WHERE episodeid = '$artID' and server = '$serverhost' ORDER BY points DESC");
    while($rowQQA = mysqli_fetch_assoc($aaSQLa))
    {
        //CODE STUFF

        echo'<tr><td><div class="chip"><img src="'.$weburl.''.$gotservers['icon'].'">'.$gotservers['short'].'</div></td>
                <td><img src="'.$miniflagsdirectory.''.$rowQQA['language'].'">'.$answersub.'</td>                                                               <td>'.$answerquality.'</td>                                                     <td>'.$soundquality.'</td>
                <td><div class="chip"><img src="'.$useraportador['avatarimg'].'"><a href="/profile?user='.$useraportador['id'].'">'.$useraportador['user'].'</a></div></td>
                <td>
                <div class="chip">'.$likes.' likes</div>
                <div class="chip">'.$dislikes.' dislikes</div>
                </td>                                               
                <td><a href="/episodeaport?id='.$rowQQA['id'].'&episodeid='.$artID.'&type=s"><i class="material-icons">fast_forward</i></a></td>
                </tr>';
    }
}


//DOWNLOAD    
$getserverdownload = MYSQL_::Bits("SELECT * FROM `aportations_servers` WHERE `type` = 'download'");
while($gotserverd = mysqli_fetch_assoc($getserverdownload))
{
    $serverhostd = $gotserverd['content'];
    $aaSQLao = MYSQL_::Bits("SELECT * FROM series_aportations WHERE episodeid = '$artID' and server = '$serverhostd' ORDER BY points DESC");
    while($rowQQAA = mysqli_fetch_assoc($aaSQLao))
    {
        //CODE STUFF                                                                                                    
        echo'<tr><td><div class="chip"><img src="'.$weburl.''.$gotserverd['icon'].'">'.$gotserverd['short'].'</div></td>
            <td><img src="'.$miniflagsdirectory.''.$rowQQAA['language'].'">'.$answersubb.'</td>                                                         <td>'.$answerqualityy.'</td>                                                        <td>'.$soundqualityy.'</td>
            <td><div class="chip"><img src="'.$useraportadorr['avatarimg'].'"><a href="/profile?user='.$useraportadorr['id'].'">'.$useraportadorr['user'].'</a></div></td>
            <td>
            <div class="chip">'.$likess.' likes</div>
            <div class="chip">'.$dislikess.' dislikes</div>
            </td>
            <td><a href="/episodeaport?id='.$rowQQAA['id'].'&episodeid='.$artID.'&type=s"><i class="material-icons">fast_forward</i></a></td>
            </tr>';
    }
}

It outputs the values of two while loops as you can see and I need them to be set as a variable.

This is my js code:

$("#linksactivator").click(function() {
        var postid = $("#postid").val();
        var posttype = $("#posttype").val();
        var linksnumber = $("#linksnumber").val();      
        var dataString = 'postid='+postid+'&posttype='+posttype+'&linksnumber='+linksnumber;

        $.ajax({
            type: "POST",
            dataType: 'html',
            url: "ajax/getlinks.php",
            data: dataString,
            beforeSend: function() {
                $("#linksactivator").addClass('disabled');
                $("#activatedlinks").empty();
                $("#activatedlinks").prepend('<i class="material-icons left">access_time</i>CARGANDO...');
            },          
            success: function(data){                                                    
                $("#activatedlinks").empty();
                $("#activatedlinks").prepend('<i class="material-icons left">thumb_up</i>Ver enlaces ('+linksnumber+')');
                $("#activatedlinks").removeClass('disabled');
                $("#aportations-watch").prepend(data);
                $("#aportations-download").prepend(data);

            }
            });                 
        return false;
    });

I don't know if its even possible. PD: I've tried with json creating an array but it just outputs the first response from each loop. I don't know how to put them in an only array to get the response later with the js code. I'd be so grateful with any response :-)

  • 写回答

1条回答 默认 最新

  • duandong1963 2017-11-12 17:22
    关注

    this will give you all the result you want in one array. i am not sure this will help you or not.

    $data['one'] = array();
    $data['two'] = array();
    $getserverstream = MYSQL_::Bits("SELECT * FROM `aportations_servers` WHERE `type` = 'stream'");
    while($gotservers = mysqli_fetch_assoc($getserverstream))
    {
        $serverhost = $gotservers['content'];
        $aaSQLa = MYSQL_::Bits("SELECT * FROM series_aportations WHERE episodeid = '$artID' and server = '$serverhost' ORDER BY points DESC");
        while($rowQQA = mysqli_fetch_assoc($aaSQLa))
        {
            //CODE STUFF
    
            $data['one'][] = '<tr><td><div class="chip"><img src="'.$weburl.''.$gotservers['icon'].'">'.$gotservers['short'].'</div></td>
                    <td><img src="'.$miniflagsdirectory.''.$rowQQA['language'].'">'.$answersub.'</td>                                                               <td>'.$answerquality.'</td>                                                     <td>'.$soundquality.'</td>
                    <td><div class="chip"><img src="'.$useraportador['avatarimg'].'"><a href="/profile?user='.$useraportador['id'].'">'.$useraportador['user'].'</a></div></td>
                    <td>
                    <div class="chip">'.$likes.' likes</div>
                    <div class="chip">'.$dislikes.' dislikes</div>
                    </td>                                               
                    <td><a href="/episodeaport?id='.$rowQQA['id'].'&episodeid='.$artID.'&type=s"><i class="material-icons">fast_forward</i></a></td>
                    </tr>';
        }
    }
    
    
    //DOWNLOAD    
    $getserverdownload = MYSQL_::Bits("SELECT * FROM `aportations_servers` WHERE `type` = 'download'");
    while($gotserverd = mysqli_fetch_assoc($getserverdownload))
    {
        $serverhostd = $gotserverd['content'];
        $aaSQLao = MYSQL_::Bits("SELECT * FROM series_aportations WHERE episodeid = '$artID' and server = '$serverhostd' ORDER BY points DESC");
        while($rowQQAA = mysqli_fetch_assoc($aaSQLao))
        {
            //CODE STUFF                                                                                                    
            $data['two'][] = '<tr><td><div class="chip"><img src="'.$weburl.''.$gotserverd['icon'].'">'.$gotserverd['short'].'</div></td>
                <td><img src="'.$miniflagsdirectory.''.$rowQQAA['language'].'">'.$answersubb.'</td>                                                         <td>'.$answerqualityy.'</td>                                                        <td>'.$soundqualityy.'</td>
                <td><div class="chip"><img src="'.$useraportadorr['avatarimg'].'"><a href="/profile?user='.$useraportadorr['id'].'">'.$useraportadorr['user'].'</a></div></td>
                <td>
                <div class="chip">'.$likess.' likes</div>
                <div class="chip">'.$dislikess.' dislikes</div>
                </td>
                <td><a href="/episodeaport?id='.$rowQQAA['id'].'&episodeid='.$artID.'&type=s"><i class="material-icons">fast_forward</i></a></td>
                </tr>';
        }
    }
    
    echo json_encode($data);
    

    The js file

    $("#linksactivator").click(function() {
            var postid = $("#postid").val();
            var posttype = $("#posttype").val();
            var linksnumber = $("#linksnumber").val();      
            var dataString = 'postid='+postid+'&posttype='+posttype+'&linksnumber='+linksnumber;
    
            $.ajax({
                type: "POST",
                dataType: 'html',
                url: "ajax/getlinks.php",
                data: dataString,
                beforeSend: function() {
                    $("#linksactivator").addClass('disabled');
                    $("#activatedlinks").empty();
                    $("#activatedlinks").prepend('<i class="material-icons left">access_time</i>CARGANDO...');
                },          
                success: function(data){                                                    
                    $("#activatedlinks").empty();
                    $("#activatedlinks").prepend('<i class="material-icons left">thumb_up</i>Ver enlaces ('+linksnumber+')');
                    $("#activatedlinks").removeClass('disabled');
                    //here console the data first and prepend it accordingly
                    $("#aportations-watch").prepend(data.one);
                    $("#aportations-download").prepend(data.two);
    
                }
                });                 
            return false;
        });
    
    评论

报告相同问题?

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装