Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 循环并复制表(ProcessMaker)_Php_Business Process Management - Fatal编程技术网

Php 循环并复制表(ProcessMaker)

Php 循环并复制表(ProcessMaker),php,business-process-management,Php,Business Process Management,在BPM应用程序ProcessMaker中,我尝试将dynaform中一个网格中的行复制到第二个dynaform中的后续网格中。我只想复制选中复选框的第一个网格中的行。用户不需要查看未选中的行 我尝试在后续网格之前运行一个触发器,在第一个网格中循环,并检查哪些行启用了复选框,但它似乎没有复制任何内容。 下面是触发器的代码。我做错了什么 @=new_grid = array(); $tot = count(@=original_grid); for ($i = 1; $i <= $

在BPM应用程序ProcessMaker中,我尝试将dynaform中一个网格中的行复制到第二个dynaform中的后续网格中。我只想复制选中复选框的第一个网格中的行。用户不需要查看未选中的行

我尝试在后续网格之前运行一个触发器,在第一个网格中循环,并检查哪些行启用了复选框,但它似乎没有复制任何内容。 下面是触发器的代码。我做错了什么

 @=new_grid = array();
 $tot = count(@=original_grid);
   for ($i = 1; $i <= $tot; $i++) {
    if ((@=original_grid[$i]['my_checkbox']) == 'On') {
    @=new_grid[$i] = array(
  'field1'    = @=original_grid[$i]['field1'],
  'field2'    = @=original_grid[$i]['field2'],
  'field3' = @=original_grid[$i]['field3'],
  'field4' = @=original_grid[$i]['field4'],
  'field5' = @=original_grid[$i]['field5'],
  'field6' = @=original_grid[$i]['field6']
  );
}
}
@=new_grid=array();
$tot=计数(@=原始网格);

for($i=1;$i是将变量赋值给数组中的一个字段,您使用
=
而不是
=>
。如
'field1'=>@=original_grid[$i]['field1'],


您可以使用exit结束触发器,并在此之前添加一些echo。此外,在process designer中,您还可以启用调试器。通过这种方式,您可以在运行流程时查看中的变量,以及这些值。此外,您还可以查看是否触发了触发器以及是否存在任何错误。

这一次需要一段时间才能解决。事实证明,我我的触发器放置在错误的位置。我需要在派生/路由后放置触发器。下面是我最终使用的修订代码:

$newGrid = max(array_keys(@=newGrid));
$i = 0;
foreach(@=newGrid as $r){
  if($r['my_checkbox'] == "On")
  {
     $i = $i + 1;
     @=newGrid[$newGrid + $i] = $r; 
  }
}