Lel*_*eta 0 javascript php arrays jquery-select2
我已经做了好几次同样的事情(实际上也在同一个项目上)并且它工作正常.我对这个相同代码的实例有一个问题.首先,我从db表中选择一些数据:
$azioni = $pdo->query("SELECT id_az, concat_ws('-',Descrizione, RGE) as descrizione
FROM azioni_head
JOIN sofferenze ON sofferenze.id_soff = azioni_head.id_soff
ORDER BY Descrizione")
->fetchAll(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)
这给了我一个像这样的数组(只是前几个项目):
Array
(
[0] => Array
(
[id_az] => AZ000000126
[descrizione] => Acciaierie Weissenfels S.p.A.-n/d
)
[1] => Array
(
[id_az] => AZ000000017
[descrizione] => Acofer S.p.A.-n/d
)
)
Run Code Online (Sandbox Code Playgroud)
然后我在Json数组中转换这个数组:
var azioni = <?php echo json_encode($azioni); ?>;
最后我使用这些数据填充Select2但这次select2里面没有任何项目.如果我尝试使用alert(azioni.join( ));我得到的数据进行编码后查看数组:
[object Object],[object Object],[object Object],[object Object],
最后我跑:
$('#cod_az').select2({ placeholder: "Scegli", data: azioni });
Run Code Online (Sandbox Code Playgroud)
怎么了?为什么我不能用这个数组用数据填充Select2?它适用于我的应用程序的其他部分!
编辑 这是firebug中console.log(azioni)的结果:
[
Object { id_az="AZ000000126", descrizione="Acciaierie Weissenfels S.p.A.-n/d"},
Object { id_az="AZ000000017", descrizione="Acofer S.p.A.-n/d"},
Object { id_az="AZ000000039", descrizione="ADANI SAS DI ADANI PAOLO & C. S.p.A.-n/d"},
Object { id_az="AZ000000019", descrizione="Administration Speciale ...NG S.A. en faillite-n/d"}
]
Run Code Online (Sandbox Code Playgroud)
要进行调试,请使用console.dir(azioni);检查对象.
将您id_az和descrizione密钥更改为id和text
var data = [{ id: 0, text: 'item1' }, { id: 1, text: 'item2' }];
$(".js-example-data-array").select2({
data: data
})
Run Code Online (Sandbox Code Playgroud)
https://select2.github.io/examples.html
默认情况下,jquery select2期望数据采用id/text格式.