数组没有发送所有元素,只获得第一个

时间:2015-03-02 10:40:47

标签: javascript php jquery arrays

我希望在15秒间隔后从当前页面获取所有帖子ID以进行服务器端php查询。 Php查询将在Sql中找到与id匹配的内容,如果找到特定id的任何数据,它将是.append它。

所以在我当前的页面中有很多div都有自己的动态帖子ID,如:

<div class="case" data-post-id="111"></div>

<div class="case" data-post-id="222"></div>

<div class="case" data-post-id="333"></div>

<div class="case" data-post-id="anything else dynamic no"></div>

我想要,我的javascript将获取并将此id发送到php查询以查找Sql中的任何匹配。

这里我的array只获得了第一个帖子ID。问题是我的javascript数组或php数组

我的更新脚本:(此处var CID无法获取ID,只能获得第一个ID)

//make array to get id
var CID = []; //get dynamic id 
$('div[data-post-id]').each(function (i) {
    CID[i] = $(this).data('post-id');
});

function addrep(type, msg) {
    CID.forEach(function (id) {
        $("#newreply" + id).append("");
    });
}
var tutid = '<?php echo $tutid; ?>';

function waitForRep() {
    $.ajax({
        type: "GET",
        url: "/server.php",
        cache: false,
        data: {
            tutid: tutid,
            // this way array containing all ID's can be sent:
            cid: CID
        },
        timeout: 15000,
        success: function (data) {
            addrep("postreply", data);
            setTimeout(
            waitForRep,
            15000);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            setTimeout(
            waitForRep,
            15000);
        }
    });
}

server.php

if($_REQUEST['tutid'] && $_REQUEST['cid']){
    //make array to cid to get id
    foreach($_REQUEST['cid'] as $key => $value){

       $res = mysqli_query($dbh,"SELECT * FROM test WHERE id =".$value." AND page_id=".$_REQUEST['tutid']." ORDER BY id DESC LIMIT 1") or die(mysqli_error($dbh));

        $rows =  mysqli_fetch_assoc($res);  

        $row[] = array_map('utf8_encode', $rows); //line 80
        $data = array();

        $data['id'] = $rows['id']; 
        //etc all

            //do something

if (!empty($data)) {
    echo json_encode($data);
    flush();
    exit(0);
}
} }

1 个答案:

答案 0 :(得分:0)

更改小代码并进行检查

//make array to get id
var CID = []; //get dynamic id 
$('div[data-post-id]').each(function (i) {
    CID[CID.length] = $(this).data('post-id');
});