We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 49302
    • 14 Posts
    Hi,

    I have a resource page with an html table to display data from 16 tables in the database. I tried passing the data to a chunk containing a HTML table, it works, but if no data is found on some of the tables in the database, the html table does not appear on the page.

    What I want is;

    1. if no data is in the database, I want to have a blank html table
    2. if only two tables have data in the database, I want the html table to have two rows filled.

    Snippet Code
    <?php
    $path = MODX_CORE_PATH . 'components/grades/';
     
    $username = $modx->user->get('username');
    $result = $modx->addPackage('grades',$path .
        'model/','grade_');
      
    if (! $result) {
        return 'failed to add package';
    } else {
        $output = '<p>added Package</p>';
    }
    $query = $modx->newQuery('Results');
    $query->innerJoin('Colleagues','Colleagues','Colleagues.username = Results.username' );
    $query->innerJoin('Results3','Results3','Results3.username = Results.username' );
    $query->innerJoin('Results4','Results4','Results4.username = Results.username' );
    $query->innerJoin('Results5','Results5','Results5.username = Results.username' );
    $query->innerJoin('Results6','Results6','Results6.username = Results.username' );
    $query->innerJoin('Results7','Results7','Results7.username = Results.username' );
    $query->innerJoin('Results8','Results8','Results8.username = Results.username' );
    $query->innerJoin('Results9','Results9','Results9.username = Results.username' );
    $query->innerJoin('Results10','Results10','Results10.username = Results.username' );
    $query->innerJoin('Results11','Results11','Results11.username = Results.username' );
    $query->innerJoin('Results12','Results12','Results12.username = Results.username' );
    $query->innerJoin('Results13','Results13','Results13.username = Results.username' );
    $query->innerJoin('Results14','Results14','Results14.username = Results.username' );
    $query->innerJoin('Results15','Results15','Results15.username = Results.username' );
    $query->innerJoin('Results16','Results16','Results16.username = Results.username' );
    $query->where(array(
    					'Results.username'=> $username,
    					'Colleagues.username' =>$username,
    					'Results3.username' =>$username,
    					'Results4.username' =>$username,
    					'Results5.username' =>$username,
    					'Results6.username' =>$username,
    					'Results7.username' =>$username,
    					'Results8.username' =>$username,
    					'Results9.username' =>$username,
    					'Results10.username' =>$username,
    					'Results11.username' =>$username,
    					'Results12.username' =>$username,
    					'Results13.username' =>$username,
    					'Results14.username' =>$username,
    					'Results15.username' =>$username,
    					'Results16.username' =>$username
    					));
    //$query->andCondition(array('Colleagues.username' =>$username));
    $query->select(array('Results.*','Colleagues.*', 'Results3.*', 'Results4.*', 'Results5.*', 'Results6.*', 'Results7.*', 'Results8.*', 'Results9.*', 'Results10.*', 'Results11.*', 'Results12.*', 'Results13.*', 'Results14.*', 'Results15.*', 'Results16.*'));
     
    $grades = $modx->getCollection('Results',$query);
     
    $output .= '<p>Total: '. count($grades) . '</p>';
    foreach($grades as $grade) {
    $fields = $grade->toArray();
    $output .= $modx->getChunk('ShowResults', $fields);
    }
     
     
      
    return $output;
    



    html table chunk
    <p class="Results">
    <html>
    
    <head>
    <style>
    table, th, td {
        border: 1px solid black;
        border-collapse: collapse;
    }
    th, td {
        padding: 5px;
        text-align: left;    
    }
    </style>
    </head>
    
    <body>
    
    <h2>Questionnaire Results</h2>
    <table style="width:100%">
      <tr>
    <th></th>
    <th></th>
        <th colspan="11">Round1</th>
        <th></th>
    
    <th colspan="10">Round2</th>
      </tr>
      <tr>
    <th></th>
    <th></th>
        <th>Self</th>
    <th colspan="10">Colleague Evaluation</th>
        
    <th></th>
    
    <th colspan="10">Colleague Evaluation</th>
      </tr>
    
      <tr>
    <th></th>
    <th></th>
          <th></th>
        <th>A</th>
    <th>B</th>
    <th>C</th>
    <th>D</th>
    <th>E</th>
    <th>F</th>
    <th>G</th>
    <th>H</th>
    <th>Total</th>
    <th>Average</th>
    <th></th>
    <th>J</th>
    <th>K</th>
    <th>L</th>
    <th>M</th>
    <th>N</th>
    <th>O</th>
    <th>P</th>
    <th>Q</th>
    <th>Total</th>
    <th>Average</th>
      </tr>
    
    <tr>
    <td>X1</td>
    <td>How well do I establish positive working relationships with colleagues?</td>
    <td>[[+SX1]]</td>
    <td>[[+X1]]</td>
    <td>[[+BX1]]</td>
    <td>[[+CX1]]</td>
    <td>[[+DX1]]</td>
    <td>[[+EX1]]</td>
    <td>[[+FX1]]</td>
    <td>[[+GX1]]</td>
    <td>[[+HX1]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JX1]]</td>
    <td>[[+KX1]]</td>
    <td>[[+LX1]]</td>
    <td>[[+MX1]]</td>
    <td>[[+NX1]]</td>
    <td>[[+OX1]]</td>
    <td>[[+PX1]]</td>
    <td>[[+QX1]]</td>
    <td></td>
    <td></td>
      </tr>
    
    <tr>
    <td>X2</td>
    <td>How often do I use praise?</td>
    <td>[[+SX2]]</td>
    <td>[[+X2]]</td>
    <td>[[+BX2]]</td>
    <td>[[+CX2]]</td>
    <td>[[+DX2]]</td>
    <td>[[+EX2]]</td>
    <td>[[+FX2]]</td>
    <td>[[+GX2]]</td>
    <td>[[+HX2]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JX2]]</td>
    <td>[[+KX2]]</td>
    <td>[[+LX2]]</td>
    <td>[[+MX2]]</td>
    <td>[[+NX2]]</td>
    <td>[[+OX2]]</td>
    <td>[[+PX2]]</td>
    <td>[[+QX2]]</td>
    <td></td>
    <td></td>
      </tr>
    
    <tr>
    <td>X3</td>
    <td>How well do I communicate what I think and want?</td>
    <td>[[+SX3]]</td>
    <td>[[+X3]]</td>
    <td>[[+BX3]]</td>
    <td>[[+CX3]]</td>
    <td>[[+DX3]]</td>
    <td>[[+EX3]]</td>
    <td>[[+FX3]]</td>
    <td>[[+GX3]]</td>
    <td>[[+HX3]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JX3]]</td>
    <td>[[+KX3]]</td>
    <td>[[+LX3]]</td>
    <td>[[+MX3]]</td>
    <td>[[+NX3]]</td>
    <td>[[+OX3]]</td>
    <td>[[+PX3]]</td>
    <td>[[+QX3]]</td>
    <td></td>
    <td></td>
      </tr>
    
    <tr>
    <td>X4</td>
    <td>Am I open and honest?</td>
    <td>[[+SX4]]</td>
    <td>[[+X4]]</td>
    <td>[[+BX4]]</td>
    <td>[[+CX4]]</td>
    <td>[[+DX4]]</td>
    <td>[[+EX4]]</td>
    <td>[[+FX4]]</td>
    <td>[[+GX4]]</td>
    <td>[[+HX4]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JX4]]</td>
    <td>[[+KX4]]</td>
    <td>[[+LX4]]</td>
    <td>[[+MX4]]</td>
    <td>[[+NX4]]</td>
    <td>[[+OX4]]</td>
    <td>[[+PX4]]</td>
    <td>[[+QX4]]</td>
    <td></td>
    <td></td>
      </tr>
    
    <tr>
    <td>X5</td>
    <td>Grade me on my concern for colleagues</td>
    <td>[[+SX5]]</td>
    <td>[[+X5]]</td>
    <td>[[+BX5]]</td>
    <td>[[+CX5]]</td>
    <td>[[+DX5]]</td>
    <td>[[+EX5]]</td>
    <td>[[+FX5]]</td>
    <td>[[+GX5]]</td>
    <td>[[+HX5]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JX5]]</td>
    <td>[[+KX5]]</td>
    <td>[[+LX5]]</td>
    <td>[[+MX5]]</td>
    <td>[[+NX5]]</td>
    <td>[[+OX5]]</td>
    <td>[[+PX5]]</td>
    <td>[[+QX5]]</td>
    <td></td>
    <td></td>
      </tr>
    
    <tr>
    <td>X6</td>
    <td>Grade me on my concern for the quality of SystmOne and TPP</td>
    <td>[[+SX6]]</td>
    <td>[[+X6]]</td>
    <td>[[+BX6]]</td>
    <td>[[+CX6]]</td>
    <td>[[+DX6]]</td>
    <td>[[+EX6]]</td>
    <td>[[+FX6]]</td>
    <td>[[+GX6]]</td>
    <td>[[+HX6]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JX6]]</td>
    <td>[[+KX6]]</td>
    <td>[[+LX6]]</td>
    <td>[[+MX6]]</td>
    <td>[[+NX6]]</td>
    <td>[[+OX6]]</td>
    <td>[[+PX6]]</td>
    <td>[[+QX6]]</td>
    <td></td>
    <td></td>
      </tr>
    
    <tr>
    <td>X7</td>
    <td>Grade me on my personal attitude</td>
    <td>[[+SX7]]</td>
    <td>[[+X7]]</td>
    <td>[[+BX7]]</td>
    <td>[[+CX7]]</td>
    <td>[[+DX7]]</td>
    <td>[[+EX7]]</td>
    <td>[[+FX7]]</td>
    <td>[[+GX7]]</td>
    <td>[[+HX7]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JX7]]</td>
    <td>[[+KX7]]</td>
    <td>[[+LX7]]</td>
    <td>[[+MX7]]</td>
    <td>[[+NX7]]</td>
    <td>[[+OX7]]</td>
    <td>[[+PX7]]</td>
    <td>[[+QX7]]</td>
    <td></td>
    <td></td>
      </tr>
    
    <tr>
    <td>Y8</td>
    <td>Grade me on how open I am to criticism</td>
    <td>[[+SY8]]</td>
    <td>[[+Y8]]</td>
    <td>[[+BY8]]</td>
    <td>[[+CY8]]</td>
    <td>[[+DY8]]</td>
    <td>[[+EY8]]</td>
    <td>[[+FY8]]</td>
    <td>[[+GY8]]</td>
    <td>[[+HY8]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JY8]]</td>
    <td>[[+KY8]]</td>
    <td>[[+LY8]]</td>
    <td>[[+MY8]]</td>
    <td>[[+NY8]]</td>
    <td>[[+OY8]]</td>
    <td>[[+PY8]]</td>
    <td>[[+QY8]]</td>
    <td></td>
    <td></td>
      </tr>
    
    <tr>
    <td>Y9</td>
    <td>Do I speak up when things go wrong or when I have a solution to a problem?</td>
    <td>[[+SY9]]</td>
    <td>[[+Y9]]</td>
    <td>[[+BY9]]</td>
    <td>[[+CY9]]</td>
    <td>[[+DY9]]</td>
    <td>[[+EY9]]</td>
    <td>[[+FY9]]</td>
    <td>[[+GY9]]</td>
    <td>[[+HY9]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JY9]]</td>
    <td>[[+KY9]]</td>
    <td>[[+LY9]]</td>
    <td>[[+MY9]]</td>
    <td>[[+NY9]]</td>
    <td>[[+OY9]]</td>
    <td>[[+PY9]]</td>
    <td>[[+QY9]]</td>
    <td></td>
    <td></td>
      </tr>
    
    <tr>
    <td>Y10</td>
    <td>Do I speak up in group situations?</td>
    <td>[[+SY10]]</td>
    <td>[[+Y10]]</td>
    <td>[[+BY10]]</td>
    <td>[[+CY10]]</td>
    <td>[[+DY10]]</td>
    <td>[[+EY10]]</td>
    <td>[[+FY10]]</td>
    <td>[[+GY10]]</td>
    <td>[[+HY10]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JY10]]</td>
    <td>[[+KY10]]</td>
    <td>[[+LY10]]</td>
    <td>[[+MY10]]</td>
    <td>[[+NY10]]</td>
    <td>[[+OY10]]</td>
    <td>[[+PY10]]</td>
    <td>[[+QY10]]</td>
    <td></td>
    <td></td>
      </tr>
    
    <tr>
    <td>Y11</td>
    <td>Do I ask questions when I am uncertain?</td>
    <td>[[+SY11]]</td>
    <td>[[+Y11]]</td>
    <td>[[+BY11]]</td>
    <td>[[+CY11]]</td>
    <td>[[+DY11]]</td>
    <td>[[+EY11]]</td>
    <td>[[+FY11]]</td>
    <td>[[+GY11]]</td>
    <td>[[+HY11]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JY11]]</td>
    <td>[[+KY11]]</td>
    <td>[[+LY11]]</td>
    <td>[[+MY11]]</td>
    <td>[[+NY11]]</td>
    <td>[[+OY11]]</td>
    <td>[[+PY11]]</td>
    <td>[[+QY11]]</td>
    <td></td>
    <td></td>
      </tr>
    
    <tr>
    <td>Y12</td>
    <td>Do I feedback enough?</td>
    <td>[[+SY12]]</td>
    <td>[[+Y12]]</td>
    <td>[[+BY12]]</td>
    <td>[[+CY12]]</td>
    <td>[[+DY12]]</td>
    <td>[[+EY12]]</td>
    <td>[[+FY12]]</td>
    <td>[[+GY12]]</td>
    <td>[[+HY12]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JY12]]</td>
    <td>[[+KY12]]</td>
    <td>[[+LY12]]</td>
    <td>[[+MY12]]</td>
    <td>[[+NY12]]</td>
    <td>[[+OY12]]</td>
    <td>[[+PY12]]</td>
    <td>[[+QY12]]</td>
    <td></td>
    <td></td>
      </tr>
    
      <tr>
    <td>Y13</td>
    <td>Do I stand up to others?</td>
    <td>[[+SY13]]</td>
    <td>[[+Y13]]</td>
    <td>[[+BY13]]</td>
    <td>[[+CY13]]</td>
    <td>[[+DY13]]</td>
    <td>[[+EY13]]</td>
    <td>[[+FY13]]</td>
    <td>[[+GY13]]</td>
    <td>[[+HY13]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JY13]]</td>
    <td>[[+KY13]]</td>
    <td>[[+LY13]]</td>
    <td>[[+MY13]]</td>
    <td>[[+NY13]]</td>
    <td>[[+OY13]]</td>
    <td>[[+PY13]]</td>
    <td>[[+QY13]]</td>
    <td></td>
    <td></td>
      </tr>
      
        <tr>
    <td>Y14</td>
    <td>Do I stay calm under pressure?</td>
    <td>[[+SY14]]</td>
    <td>[[+Y14]]</td>
    <td>[[+BY14]]</td>
    <td>[[+CY14]]</td>
    <td>[[+DY14]]</td>
    <td>[[+EY14]]</td>
    <td>[[+FY14]]</td>
    <td>[[+GY14]]</td>
    <td>[[+HY14]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JY14]]</td>
    <td>[[+KY14]]</td>
    <td>[[+LY14]]</td>
    <td>[[+MY14]]</td>
    <td>[[+NY14]]</td>
    <td>[[+OY14]]</td>
    <td>[[+PY14]]</td>
    <td>[[+QY14]]</td>
    <td></td>
    <td></td>
      </tr>
      
     
           <tr>
    <td>Y15</td>
    <td>Am I assertive</td>
    <td>[[+SY15]]</td>
    <td>[[+Y15]]</td>
    <td>[[+BY15]]</td>
    <td>[[+CY15]]</td>
    <td>[[+DY15]]</td>
    <td>[[+EY15]]</td>
    <td>[[+FY15]]</td>
    <td>[[+GY15]]</td>
    <td>[[+HY15]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JY15]]</td>
    <td>[[+KY15]]</td>
    <td>[[+LY15]]</td>
    <td>[[+MY15]]</td>
    <td>[[+NY15]]</td>
    <td>[[+OY15]]</td>
    <td>[[+PY15]]</td>
    <td>[[+QY15]]</td>
    <td></td>
    <td></td>
      </tr>
      
           <tr>
    <td>Z16</td>
    <td>Do I take on responsibility?</td>
    <td>[[+SZ16]]</td>
    <td>[[+Z16]]</td>
    <td>[[+BZ16]]</td>
    <td>[[+CZ16]]</td>
    <td>[[+DZ16]]</td>
    <td>[[+EZ16]]</td>
    <td>[[+FZ16]]</td>
    <td>[[+GZ16]]</td>
    <td>[[+HZ16]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JZ16]]</td>
    <td>[[+KZ16]]</td>
    <td>[[+LZ16]]</td>
    <td>[[+MZ16]]</td>
    <td>[[+NZ16]]</td>
    <td>[[+OZ16]]</td>
    <td>[[+PZ16]]</td>
    <td>[[+QZ16]]</td>
    <td></td>
    <td></td>
      </tr>
      
           <tr>
    <td>Z17</td>
    <td>Am I willing to take on new challenges?</td>
    <td>[[+SZ17]]</td>
    <td>[[+Z17]]</td>
    <td>[[+BZ17]]</td>
    <td>[[+CZ17]]</td>
    <td>[[+DZ17]]</td>
    <td>[[+EZ17]]</td>
    <td>[[+FZ17]]</td>
    <td>[[+GZ17]]</td>
    <td>[[+HZ17]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JZ17]]</td>
    <td>[[+KZ17]]</td>
    <td>[[+LZ17]]</td>
    <td>[[+MZ17]]</td>
    <td>[[+NZ17]]</td>
    <td>[[+OZ17]]</td>
    <td>[[+PZ17]]</td>
    <td>[[+QZ17]]</td>
    <td></td>
    <td></td>
      </tr>
      
           <tr>
    <td>Z18</td>
    <td>Do I demonstrate a high level of commitment to the quality of my work and my pursuit of excellence?</td>
    <td>[[+SZ18]]</td>
    <td>[[+Z18]]</td>
    <td>[[+BZ18]]</td>
    <td>[[+CZ18]]</td>
    <td>[[+DZ18]]</td>
    <td>[[+EZ18]]</td>
    <td>[[+FZ18]]</td>
    <td>[[+GZ18]]</td>
    <td>[[+HZ18]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JZ18]]</td>
    <td>[[+KZ18]]</td>
    <td>[[+LZ18]]</td>
    <td>[[+MZ18]]</td>
    <td>[[+NZ18]]</td>
    <td>[[+OZ18]]</td>
    <td>[[+PZ18]]</td>
    <td>[[+QZ18]]</td>
    <td></td>
    <td></td>
      </tr>
      
           <tr>
    <td>Z19</td>
    <td>Grade me on my ability to conduct myself professionally</td>
    <td>[[+SZ19]]</td>
    <td>[[+Z19]]</td>
    <td>[[+BZ19]]</td>
    <td>[[+CZ19]]</td>
    <td>[[+DZ19]]</td>
    <td>[[+EZ19]]</td>
    <td>[[+FZ19]]</td>
    <td>[[+GZ19]]</td>
    <td>[[+HZ19]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JZ19]]</td>
    <td>[[+KZ19]]</td>
    <td>[[+LZ19]]</td>
    <td>[[+MZ19]]</td>
    <td>[[+NZ19]]</td>
    <td>[[+OZ19]]</td>
    <td>[[+PZ19]]</td>
    <td>[[+QZ19]]</td>
    <td></td>
    <td></td>
      </tr>
      
         <tr>
    <td>Z20</td>
    <td>Grade me on my effectiveness and ability to get things done</td>
    <td>[[+SZ20]]</td>
    <td>[[+Z20]]</td>
    <td>[[+BZ20]]</td>
    <td>[[+CZ20]]</td>
    <td>[[+DZ20]]</td>
    <td>[[+EZ20]]</td>
    <td>[[+FZ20]]</td>
    <td>[[+GZ20]]</td>
    <td>[[+HZ20]]</td>
    <td></td>
    <td></td>
    <td></td>
    <td>[[+JZ20]]</td>
    <td>[[+KZ20]]</td>
    <td>[[+LZ20]]</td>
    <td>[[+MZ20]]</td>
    <td>[[+NZ20]]</td>
    <td>[[+OZ20]]</td>
    <td>[[+PZ20]]</td>
    <td>[[+QZ20]]</td>
    <td></td>
    <td></td>
      </tr>
      
    </table>
    
    </body>
    </html>
    
    <html>
      <head>
      
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
        <script type="text/javascript">
          google.load("visualization", "1", {packages:["corechart"]});
          google.setOnLoadCallback(drawChart);
    		
    	
          function drawChart() {
    	  
            var data = google.visualization.arrayToDataTable([
              ['Year', 'Self', 'Others'],
              ['X1',  [[+SX1]],      [[+X1]]],
              ['X2',  [[+SX2]],      [[+X2]]],
              ['X3',  [[+SX3]],       [[+X3]]],
              ['X4',  [[+SX4]],      [[+X4]]],
    		  ['X5',  [[+SX5]],      [[+X5]]],
    		  ['X6',  [[+SX6]],      [[+X6]]],
    		  ['X7',  [[+SX7]],      [[+X7]]],
    		  ['Y8',  [[+SY8]],      [[+Y8]]],
    		  ['Y9',  [[+SY9]],      [[+Y9]]],
    		  ['Y10',  [[+SY10]],      [[+Y10]]],
                      ['Y11',  [[+SY11]],      [[+Y11]]],
    		  ['Y12',  [[+SY12]],      [[+Y12]]],
    		  ['Y13',  [[+SY13]],      [[+Y13]]],
                      ['Y14',  [[+SY14]],      [[+Y14]]]
                      
    		  	  
            ]);
    
            var options = {
              title: 'Grade'
          
                           
            };
    
            var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
            chart.draw(data, options);
        
          }
        </script>
      </head>
      <body>
        <div id="chart_div" style="width: 1000px; height: 500px;"></div>
      </body>
    </html>
    
    
    </p>
      • 3749
      • 24,544 Posts
      What you want should happen by default. Presumably, the page template has html, head, and body tags, so you never want them in a chunk (and especially not multiple html, head, and body tags as you have).

        Did I help you? Buy me a beer
        Get my Book: MODX:The Official Guide
        MODX info for everyone: http://bobsguides.com/modx.html
        My MODX Extras
        Bob's Guides is now hosted at A2 MODX Hosting