vendredi 28 juin 2019

How to display checked checkbox from database in php?

I want to display checked checkbox which are stored as values in a mysql database.

For now the table stores the value of the checkbox being checked in the database. The header and first column are fetched from three different tables in the database. While the values of the checked check-boxes gets saved in a same table.

Here's the code for inserting the data.

$active = "CourseReport";
require_once 'pages/header.php';
require_once './functions/schema-functions.php';
require_once './functions/report-functions.php';
$course = Schema::getCourseReport();
$objective = Schema::getObjective();
$goals = Schema::getGoals();
$mainobj = Schema::getMainObjectives();
$subobj = Schema::getSubObjectives();
 ?>

<form id="addReport" action ='./functions/report-functions.php' method="post">

<table id="table1" class="table table-hover">

    <thead>
    <?php
    echo '<tr><th>Goals</th>';
    for ($i = 0; $i < count($course); $i++) {
        echo '<th id = "rotate1">'. $course[$i]->commonName . '</th>';            
    }
    echo '</tr>';   
    ?>
    </thead>
        <tbody>

    <?php
    for ($y = 0; $y < count($goals); $y++) {           
        echo '<tr class="clickable"><th class="toggle">Goal#'.$goals[$y]['GoalId'].':'." " .' '.$goals[$y]['Goals'].'</th>

        </tr>';           
   ?>

    <?php
    for( $z = 0; $z < count($mainobj); $z++){
  if($mainobj[$z]['GoalId'] == $goals[$y]['GoalId']) {
        echo '<tr class="expander"><th class=row-header>Objective#'.$mainobj[$z]['MainObjId'].':'." ".' '.$mainobj[$z]['MainObjectives'].'</th>

    </tr>';
     ?>

    <?php

    for ($j = 0; $j< count($subobj); $j++) {
       if($mainobj[$z]['MainObjId'] == $subobj[$j]['MainObjId']){
       echo '<tr class="expander"><td class=row-header>'.$subobj[$j]['SubObjId'].' ) '.$subobj[$j]['SubObjectives'].' </td>';

   for ($x = 0; $x < count($course); $x++) {
      echo "<td><input name='check[]' type=checkbox value=c".$course[$x]->courseId."-o".$subobj[$j]['SubObjId']." id=checked></td>";
        }
        echo '</tr>';
    }
   }
  }
 }
}       
    ?>       
        </tbody>       
</table>
<button class="button" name= "submit" value= "Submit">Submit</button>

</form>

report-functions.php

if( isset( $_POST['submit'], $_POST['check'] ) ){
    try{
      require_once 'db-connect.php';
        $conn = DatabaseConnection::getConnection();
       $sql= " insert into `Report`  (`ColRow`) values (:value) ";
        $stmt = $conn->prepare( $sql );
       if( $stmt ){
         $conn->beginTransaction();
           foreach( $_POST['check'] as $index => $value ) {
               $result = $stmt->execute( [ ':value' => $value ] );
                if( !$result ) {
                   echo '
        <script>
           alert("Error, please try submitting again. Error code 1");
           window.history.back();
        </script>';
                }
            }
            $conn->commit();
          echo '<script>
            alert("Report was submitted successfully.");
            window.location = "http://socrates.njms.rutgers.edu/";
        </script>';
      }
    } catch( Exception $e ){
       $conn->rollback();
        exit( $e->getMessage() );
    }

I expect that once I submit the table, the table should load the same table with the checked checkboxes. I should be able to make the changes and submit the table over and over again.

Please comment if I need to provide any additional information.




Aucun commentaire:

Enregistrer un commentaire