ForEach Array Javascript

时间:2016-12-07 18:49:18

标签: javascript jquery ajax foreach

我在PHP中有一个数组,我想循环使用它。

不幸的是,数组在JavaScript中给出了这个:

Array
(
    [data] => 12,11,2,5,6,7,8,9,10,13,14,15,16,17,18
    [0] => 12,11,2,5,6,7,8,9,10,13,14,15,16,17,18
)

而不是:

var myvar = [10, 11, 12, ...];

所以我无法循环。有什么建议吗?

<?php
    include("connection.php");

    $query = $handler->query('  SELECT data FROM lista where id=1;');
    $query->setFetchMode(PDO::FETCH_BOTH/*, 'CreaPrezzi'*/);
    $r = $query->fetch();

    print_r($r);

    $.ajax({
        type:"POST",
        url:"getSortable.php"
    }).done(function (list) {

        var sortedList = list;
        sortedList.forEach(function(id) {
           $("#" + id).appendTo("#sortable")
        })

    })

2 个答案:

答案 0 :(得分:1)

这种输出确实是print_r的结果。而是使用json_encode,如下所示:

echo json_encode($r[0]);

然后在JavaScript中表明您期待JSON:

$.ajax({
    type:"POST",
    url:"getSortable.php",
    dataType: "json"    // <!-- add this
}).done( // ...etc

由于$r[0](在PHP中)是一个普通字符串,您需要将其拆分为数组,可以是PHP,也可以是JavaScript。在PHP中可以使用explode

完成
echo json_encode(explode(",", $r[0]));

或者使用JavaScript(但随后使用第一个PHP版本),您可以使用split

var sortedList = list.split(',');

答案 1 :(得分:-1)

    <?php
    include("connection.php");


    $query = $handler->query('  SELECT data FROM lista where id=1;');
    $query->setFetchMode(PDO::FETCH_BOTH/*, 'CreaPrezzi'*/);
    $r = $query->fetch();

   echo json_encode($r);



            $.ajax({
                type:"POST",
                url:"getSortable.php"
            }).done(function (list) {

                var sortedList = list;

                sortedList.forEach(function(id) {
                    $("#" + id).appendTo("#sortable")
                })

            })