0

通常我们调用 onSelectRow 函数,如:

$("#imports_grid").jqGrid({
    // jqGrid settings
    url: url,
    datatype: "json",
    colNames: cnames,
    colModel: cmodel,
    onSelectRow: function() {
      // Code
    },
});

我的 PHP 脚本使用 json_encode() 输出 jqGrid 设置,所以它看起来像

$script = '$("#imports_grid").jqGrid(' . json_encode($js_settings) . ');';
// echo $script;

在这种情况下,onSelectRow 的功能不起作用。

是否有另一种方法可以在 onSelectRow 中触发函数?

4

1 回答 1

1

您不需要在 PHP 脚本中混合 HTML 代码和 JavaScript 代码。取而代之的是,您可以放置<script>​​元素

<script type="text/javascript" src="theURL.js"></script>

在 PHP 脚本中。您可以放置​​在 .JS 文件中的 JavaScript 代码。

更新:您可以在设置一些全局变量的内联 JavaScript 代码和使用变量的 JS 文件之间进行混合:

在您使用的 PHP 代码中

<script type="text/javascript">
    var MYGLOBALSETTINGS = {
        cnames: ["Column 1", "Column 2", ...],
        cmodel: [{...}, {...}...],
        url: "myUrl"
    };
</script>
<script type="text/javascript" src="my.js"></script>

而在my.js你只使用MYGLOBALSETTINGS.cnamesMYGLOBALSETTINGS.cmodel

$("#imports_grid").jqGrid({
    // jqGrid settings
    url: MYGLOBALSETTINGS.url,
    datatype: "json",
    colNames: MYGLOBALSETTINGS.cnames,
    colModel: MYGLOBALSETTINGS.cmodel,
    onSelectRow: function() {
      // Code
    },
});
于 2012-12-01T10:41:06.563 回答