0

我从存储在会话变量中的数据库中获取了 ~ 2k 个城市名称,然后我试图将会话变量转换为 javascript 变量,但我的代码似乎崩溃了

会话变量的代码

    $sql = "SELECT nom FROM Villes ORDER BY nbSearch";
    try
    { $resultat = $bd->Select($sql); }
    catch(Exception $e)
    { echo $e->getMessage(); }

    if(count($resultat) != 0)
        $_SESSION['villeDB'] = $resultat;

    echo count($resultat)."<br/>";

php 到 javascript

var availableTags = '<?php echo json_encode($_SESSION['villeDB']) ?>';

我需要将每个城市名称存储到那种 JavaScript var

var availableTags = [];
4

1 回答 1

1

您可以尝试删除引号:

var availableTags = <?php echo json_encode($_SESSION['villeDB']) ?>;

如果要转换[["Acme, AB"],["Airdrie, AB"],...]["Acme, AB","Airdrie, AB",...],可以使用类似

var temp = [];
for (var i=0; i<availableTags.length; ++i) {
    for (var j=0; j<availableTags[i].length; ++j) {
        temp.push( availableTags[i][j] );
    }
}
availableTags = temp;

但是如果您在另一个问题中问它,也许有人会回答更好的选择。

于 2013-09-28T17:11:46.233 回答