Jquery插件可以使用PHP中的值进行编辑

时间:2012-11-30 02:21:36

标签: javascript jquery jquery-plugins

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

提前致谢

1 个答案:

答案 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';