我正在使用jquery可编辑插件http://www.appelsiini.net/projects/jeditable。
我需要从数据库中填充下拉选项。
所以我有这样的事情:
$(".edit_company").editable("banner-save.php", {
indicator : '<img src="img/indicator.gif">',
data : "{ 'Package 1' : 'Package 1', 'Package 2' : 'Package 2' }",
type : "select",
submit : "OK",
event : "dblclick",
submitdata : function() {
return {type : 'package'};
}
});
那里的'数据',我需要从数组中填充它,比如
$query=mysql_query("select * from company");
while ($query as $comp) {
// how
}
如何将查询中的值传递给js中的“数据”?
提前致谢
答案 0 :(得分:0)
将您的查询行累积到PHP关联数组中,并将json_encode()
累积到jQuery插件中。
$data = array();
// Assuming you had a column called `name` in your query...
while ($row = mysql_fetch_assoc($query)) {
$data[$row['name']] = $row['name'];
}
这会生成如下所示的数组。从查询中提供正确的列名称,以获得所需的key : value
对。
Array
(
[Name 1] => Name 1
[Name 2] => Name 2
[Name 3] => Name 3
)
..生成JSON:
{"Name 1":"Name 1","Name 2":"Name 2","Name 3":"Name 3"}
通过json_encode()
将其传递到jQuery插件。
$(".edit_company").editable("banner-save.php", {
indicator : '<img src="img/indicator.gif">',
// json_encode() will supply the correct format.
data : '<?php echo json_encode($data); ?>',
type : "select",
...
});
将JSON作为字符串而不是普通对象传递到JavaScript中是很奇怪的,但这与示例in the documentation for the plugin一致。
根据文档,如果您希望在默认情况下选择特定选项,则可以在PHP数组中将其设置为:
// Start with Name 3 selected
$data['selected'] = 'Name 3';