php - How to create a template for checkbox groups to avoid code duplication at server side? -


i have found question (stackoverflow.com/questions/30556100/how-to-uncheck-all-checkboxes-if-one-checkbox-checked). now, create template html generation, seems idea avoid code duplication. how html generated:

// --------------------------------------- // --- populate "body type" dropdown list: // ---------------------------------------  // populate body types: $bodytype = array();   // select exsiting body type database:   $prep_stmt = " select id,   name body_type";  $stmt = $mysqli->prepare($prep_stmt);  if ($stmt) {     // bind "$userid" parameter.     //$stmt->bind_param('i', $userid);       // execute prepared query.     $stmt->execute();         $stmt->store_result();      // variables result.     $stmt->bind_result($id, $name);      // fetch records:     while ($stmt->fetch()) {          // xss protection might print these values         $name = preg_replace("/[^a-za-z0-9_\-]+/", "", $name);         $id   = filter_var($id,filter_sanitize_number_int);          $type  = "<label class='checkbox-inline'>\n";         if ($name == 'any'){             $type .=    "<input type='checkbox' id='bodytypeany' name='bodytypecheck[]' value='{$id}'> {$name}\n";         } else {             $type .=    "<input type='checkbox' id='' name='bodytypecheck[]' value='{$id}'> {$name}\n";         }         $type .= "</label>\n";           //add body types array         $bodytype[] = $type;         }    } else {     echo 'database error'; }     // close statement: $stmt->close(); unset($stmt); 

all php code checkbox groups : http://pastebin.com/nxn6zzck

how can implement function generate checkbox group, call function.

hope may me out. thank you.

before follow steps below, save working version somewhere make sure can roll if need to.

you create class templates, this:

class templateengine {      public static function getcheckboxtemplate($input, $templatename) {         $template = "";         foreach ($input $element) {             $template .= "<label class='checkbox-inline'>\n";             $template .= "<input type='checkbox' ".(($element["name"] === "any") ? ("id='".$templatename."any'") : (""))." name='".$templatename."check' value='".$element["id"]."'>".$element["name"]."\n";             $template .= "</label>\n";         }         return $template;     }  } 

make sure create class in separate file implement later templates , require/include file. , can use this:

// --------------------------------------- // --- populate "body type" dropdown list: // ---------------------------------------  $template = ""; // select exsiting body type database:   $prep_stmt = " select id,   name body_type";  $stmt = $mysqli->prepare($prep_stmt);  if ($stmt) {     // bind "$userid" parameter.     //$stmt->bind_param('i', $userid);       // execute prepared query.     $stmt->execute();         $stmt->store_result();      // variables result.     $stmt->bind_result($id, $name);     $input = array();      // fetch records:     while ($stmt->fetch()) {          $input[]= array("name" => preg_replace("/[^a-za-z0-9_\-]+/", "", $name), "id" => filter_var($id,filter_sanitize_number_int));     }     $template = templateengine::getcheckboxtemplate($input, "bodytype");    } else {     echo 'database error'; }     // close statement: $stmt->close(); unset($stmt); 

and instead of using $bodytype array, can simply:

echo $template; 

the code not tested. if there typos, let me know :)

edit: further templating:

class templateengine {      public static function getcheckboxtemplate($input, $templatename) {         $template = "";         foreach ($input $element) {             $template .= "<label class='checkbox-inline'>\n";             $template .= "<input type='checkbox' ".(($element["name"] === "any") ? ("id='".$templatename."any'") : (""))." name='".$templatename."check' value='".$element["id"]."'>".$element["name"]."\n";             $template .= "</label>\n";         }         return $template;     }      public static function getcheckboxdatabasewrappertemplate($tablename, $templatename, $mysqli) {         $template = "";         // select exsiting body type database:           $prep_stmt = " select id,   name ".$tablename;          $stmt = $mysqli->prepare($prep_stmt);          if ($stmt) {             // bind "$userid" parameter.             //$stmt->bind_param('i', $userid);               // execute prepared query.            $stmt->execute();                $stmt->store_result();             // variables result.            $stmt->bind_result($id, $name);            $input = array();             // fetch records:            while ($stmt->fetch()) {                 $input[]= array("name" => preg_replace("/[^a-za-z0-9_\-]+/", "", $name), "id" => filter_var($id,filter_sanitize_number_int));            }            $template = templateengine::getcheckboxtemplate($input, $templatename);           } else {            echo 'database error';        }            // close statement:        $stmt->close();        unset($stmt);        return $template;     }  } 

Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -