我在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")
})
})
答案 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")
})
})