1

可能有一种更简单的方法来实现我正在尝试做的事情,我认为我并不完全理解$.extend()功能,但我在这里寻求建议:

我在我的索引上定义了这个自定义网格对象:

var grid = $('.grid').loadGrid({
            inlineEditing:<?php echo $edit ? 'true' : 'false'; ?>,
            adding:<?php echo $edit ? 'true' : 'false'; ?>,
            deleting:<?php echo $edit ? 'true' : 'false'; ?>,
            pagerLocation:"top",
            width:1320,
            loadComplete: function() {
                exp_sql = $(this).data().exp_sql;
            }
        });

如您所见,一些参数是在 PHP 处理页面时计算出来的。

然后我在页面下面有几个预先定义了一些 var 检查的网格:

<?
$tab = '1';
if(!@in_array($tab,$SECTIONS,true) AND $LEVEL != 1){ $edit = 0;}
?>

<table class="grid cat" action="div-m.php" title="Master catalogue info">
   <th col="Catalogue"  editable="<?php echo $edit ? 'select' : ''; ?>">Catalogue No</th>
   <th col="ISRC" editable="<?php echo $edit ? 'text' : ''; ?>">ISRC</th>
   ...
</table>

然后:

...
<table class="grid isrc" action="div-d.php" title="Digital / detailed info">
...
</table>

每个单独的表都有其唯一性date_ranges(来自 mysql 表),应该在每个表的主网格中定义。但是因为我在同一页面上有多个网格,所以我不能用 PHP 做到这一点。

所以问题是 - 我可以直接在表格之前使用更多选项扩展第一个定义的对象grid,即:

<?php
    $tab = '1';
    $grid = 'cat';
    if(!@in_array($tab,$SECTIONS,true) AND $LEVEL != 1){ $edit = 0;}
?>
    <script type="text/javascript">
        var date = {dateRange:"street_date"};
        $.extend.apply(grid, date);
    //  $.extend(grid, dateRange:"street_date");
    </script>
    <table class="grid cat" action="div-m.php" title="Master catalogue info">

以上显然不起作用......因为我认为loadGrid()应该再次调用方法......

4

0 回答 0