diff --git a/public_html/pages/component.php b/public_html/pages/component.php
index e3b820a6c2887673a907293215c4941adcc8d5fb..22b020910ee0dbd4d842887fc1316f7ade5dc3c0 100644
--- a/public_html/pages/component.php
+++ b/public_html/pages/component.php
@@ -108,6 +108,7 @@ if(!$renderAdminLTE->getComponent($sComponent)) {
         <tr><td colspan="2">
             <button class="btn btn-primary">Submit</button> 
             <a href="?id='.$sComponent.'" class="btn btn-secondary">Reset</a>
+            <a href="?id='.$sComponent.'&doloop=1" class="btn btn-secondary">Loop all</a>
         </td></tr>
     </tbody></table>
     </form>
@@ -115,21 +116,34 @@ if(!$renderAdminLTE->getComponent($sComponent)) {
 
     // --------- loop over a single var
     $sLooper='';
-    if(
-        isset($_GET['doloop']) 
-        && $renderAdminLTE->getComponentParamkey($sComponent, $_GET['doloop'])
-    ){
-        $sLoopvar=$_GET['doloop'];
-        
-        foreach($renderAdminLTE->getValidParamValues($sComponent, $sLoopvar) as $sLoopValue){
-            $aLoopoptions=$aWidgetOptions;
-            $aLoopoptions[$sLoopvar]=$sLoopValue;
-
-            $sLooper.=$renderAdminLTE->addCol(
-                '<h4>"'.$sLoopvar.'" => "'.$sLoopValue.'"</h4>'
-                    .getOutput('$renderAdminLTE->'.$aComp['method'].'('.var_export($aLoopoptions, 1).')'),
-                3
-            );
+    $sLoopvar=isset($_GET['doloop']) ? $_GET['doloop'] : '';
+    $aLoopvars=[];
+
+    if ($sLoopvar==1){
+        $aLoopvars=$renderAdminLTE->getComponentParamkeys($sComponent);
+    } elseif($renderAdminLTE->getComponentParamkey($sComponent, $sLoopvar)) {
+        $aLoopvars=[$sLoopvar];
+    }
+
+    if(count($aLoopvars)){
+        foreach($aLoopvars as $sLoopvar){
+            $sLoop4Var='';
+            foreach($renderAdminLTE->getValidParamValues($sComponent, $sLoopvar) as $sLoopValue){
+                $aLoopoptions=$aWidgetOptions;
+                $aLoopoptions[$sLoopvar]=$sLoopValue;
+
+                $sLoop4Var.=$renderAdminLTE->addCol(
+                    '<br><code>"'.$sLoopvar.'" => "'.$sLoopValue.'"</code><br>'
+                        .getOutput('$renderAdminLTE->'.$aComp['method'].'('.var_export($aLoopoptions, 1).')'),
+                    3
+                );
+            }
+            $sLooper.=$sLoop4Var
+                ? $renderAdminLTE->addRow('<h4>Loop over values of key "'.$sLoopvar.'"</h4>')
+                    .$renderAdminLTE->addRow($sLoop4Var)
+                    .'<hr>'
+                : ''
+                ;
         }
     }
 
@@ -157,11 +171,6 @@ if(!$renderAdminLTE->getComponent($sComponent)) {
             8
         )
     )
-    .(
-        $sLooper 
-        ? $renderAdminLTE->addRow($sLooper)
-        
-        : ''
-    )
+    .$sLooper 
     ;
 }
\ No newline at end of file