1

我正在使用 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 中的“数据”中?

提前致谢

4

1 回答 1

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"}

通过 . 将其传递到 jQuery 插件中json_encode()

$(".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 中,但这与插件文档中的示例一致。

根据文档,如果您希望默认选择特定选项,您可以在 PHP 数组中设置它,例如:

// Start with Name 3 selected
$data['selected'] = 'Name 3';
于 2012-11-30T02:30:01.937 回答