如何从php源创建一个数组(javascript)

时间:2016-02-23 21:12:36

标签: javascript php ajax

我很清楚编码 - 所以我希望我的问题看起来不是太愚蠢。我正在尝试为下拉列表创建一个数组。

目前我正在使用此

$(function(){
     $('.test').editable({    
           type: 'select',
           value: "keine",
           source: [
               {value: 'DD', text: 'DD'},
               {value: 'HEAL', text: 'HEAL'},
               {value: 'TANK', text: 'TANK'},
               {value: 'keine', text: 'keine'}
           ]
      }); 
});

非常适合创建手动下拉列表。

但我正在寻找一个动态解决方案,我可以在我的sql-database中插入特定表中的值(使用类似语法到上面的示例 - 也许使用.$fetch['role'].?)。

期待收到一些建议。

1 个答案:

答案 0 :(得分:1)

假设您有一个带有角色的表角色,并且您正在使用PHP的MySqli方法,那么您的PHP代码可能如下所示:

<?php
// ...
// ... assuming $mysqli is your connection object:
// ...
$result = $mysqli->query("SELECT role FROM roles ORDER BY role") 
          or die($mysqli->error());

while ($row = $result->fetch_array()) {
    $source[] = (object) array("value" => $row[0], "text" => $row[0]);
}
?>

<script>
    $(function(){
        $('.test').editable({    
            type: 'select',
            value: "keine",
            source: <?=json_encode($source)?>
        }); 
    });
</script>

因此,此代码遍历数据库的结果并构建一个PHP数组,该数组具有JavaScript中所需的结构。

一旦填充了此变量 $ source ,它就会以JSON格式写入JavaScript,这是(因为PHP生成它,所有非ASCII转义)与JavaScript兼容。