【发布时间】:2016-10-16 19:37:33
【问题描述】:
我有一个 javascript 可以格式化一个 HTML 表格,该表格需要一些参数来配置它。我在 mysql 中还有一个报告表,其中包含我的报告的定义:报告名称、描述、sql、页脚、权限、报告状态和一些报告特定参数的字段。我将参数构建为一个数组,以便我可以设置默认值,然后在传递给将数组转换为 javascript 参数的进程之前,这些默认值可以被其他进程覆盖。
我们使用 PHP 根据表格中的信息构建报告,并将“默认参数”数组与“报告特定参数”数组合并。在我们将报表定义放入数据库之前,每个报表都有一个使用 array_merge 的函数,该函数将默认参数数组和报表特定参数数组合并。
例如
$defaultparameters = array (
'base_path' => "'/inc/plugin/'",
'btn_reset' => "'true'",
'enable_default_theme' => "'true'");
$thisReportParameters = array (
'extensions' => "[{ name: 'sort', types: ['String', 'String', 'String','String', 'String','String', 'Number']},'col_2'=> "'multiple'",'col_3'=> "'select'");
$parameters = array_merge ($defaultparameters,$thisReportParameters);
然后将该数组传递给为页面构建 javascript 的函数。 现在我们已将所有报告放入一个表中,我无法将报告特定参数提取到关联数组中。 默认参数现在在报表类中设置为报表对象的属性。我想将额外的报表特定参数从数据库中提取到一个数组中以将两者结合起来。 当我将 'col_2'=> "'multiple'",'col_3'=> "'select'" 添加到数据库并将其作为数组返回时,它将整个字符串作为元素 [0] 放入数组中。 即
Array ([0] => "'col_2'=> "'multiple'"'col_3'=> "'select'"")
相对于
Array([col2] =>"'multiple'",[col_3]=> "'select'")
我考虑只是将数据库中的字符串添加到 javascript 配置的末尾,但这不会覆盖默认设置数组中已经定义的任何设置,因此我需要先将其添加到数组中,以便在合并时它会覆盖键相同的任何默认值。
报告的特定选项很多且格式各异,因此我无法为每个选项创建一个字段。
我想过在 上爆炸字符串,然后解析对来构建数组,但值也可以包含“,”,这样可能会搞砸爆炸。
可能有一种非常巧妙的方法可以实现这一点,但目前它让我无法理解......
欢迎提出建议
C
【问题讨论】:
-
你需要展示添加数据的代码
标签: php mysql arrays string associative