I managed to convert the main part of the script, which involves creating groups and sorting pets on the myadopts index.

That's the table setup for adopts_pet_groups. You need new column in owned_adoptables called "pet_group". (Not "group! "group" is a reserved name in phpMyAdmin.) 
Also make sure that "default as defined" is set to 0.
I did the entire thing in blank.php/blankview.php for testing purposes, so that's why it looks the way it does.
	PHP Code:
	
		
			
<?php
class BlankView extends View{
    
            
    public function index(){
        $mysidia = Registry::get("mysidia");
        $document = $this->document;
        $document->setTitle("<center>Sort Testing!</center>");
        
        //pet group variables? I think?
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $group = $_REQUEST["group"];
        }
        //var end
        
        //convenient vars
        $username = $mysidia->user->username;
        $uid = $mysidia->user->uid;
        //var end
        
        
        //Pet sorting!      
                if(!$group == ""){
                    if(!is_numeric($group)){
                            $document->setTitle("No group");
                            $document->add(new Comment("Group does not exist."));
                            return;
                    }
                    else{
                            $row = $mysidia->db->select("pet_groups", array(), "uid='{$uid}' and id='{$group}'")->fetchObject();    
                            if($row->id == $group and $row->uid == $uid){
                                $groupquery = "AND pet_group = '{$group}'";
                            }    
                            else{ // Invalid group
                                $article_title = "No group";
                                $article_content = "Group does not exist.";
                            }
                        }
               }
        else{
            $groupquery = "AND pet_group = '0'";
        }      
        
        // We need to get all of the user's adoptables from the database and display them...                                                       
            $rowsperpage = 10;
            //$pagination = new Pagination($adopts, $query, $rowsperpage, "http://".constant("DOMAIN").constant("SCRIPTPATH")."/stable.php?group={$group}");
                //$pagination->setPage($_GET[page]);
                $pagination = new Pagination($total, 10, "myadopts");
                $pagination->setPage($mysidia->input->get("page"));    
                //$stmt = $mysidia->db->query($query);
                $stmt = $mysidia->db->select("owned_adoptables", array("aid"), "owner = '{$mysidia->user->username}' {$groupquery} ORDER BY totalclicks LIMIT {$pagination->getLimit()},{$rowsperpage}");
            $groups = ""; // Get groups
            $stmt2 = $mysidia->db->select("pet_groups", array(), "uid='{$uid}'");
            
            $document->add(new Comment("
                <b>Group:</b><br>
                   <form method='post' action='blank'>
                        <select name='group' id='group'>
                    <option value='0'>Ungrouped</option>"));
            
            while($row = $stmt2->fetchObject()) {
                  $id = $row->id;
                  $name = $row->name;
                  $document->add(new Comment("<option value='{$id}'>{$name}</option>"));
            }
            $document->add(new Comment("
                        </select><br>
                        <input type='submit' value='Go'>
                    </form>
                    <a href='blank/creategroup'>Create a new group</a> | <a href='blank/deletegroup'>Delete a group</a>
                    <br><br>
                    <table class='table table-bordered table-dark'>
                      <thead>
                            <tr>
                                  <th>Image</th>
                                 <th>Info</th>
                                  <th>Action</th>
                            </tr>
                      </thead>
                      <tbody>", FALSE));
                while($row = $stmt->fetchObject()){
                    $adopt = new OwnedAdoptable($row->aid);
                        $image = $adopt->getImage(); 
                        $document->add(new Comment("
                            <tr>
                              <td><img src='{$adopt->getImage()}'></td>
                              <td><b><em>{$adopt->getName()}</b></em><br></br> Level {$adopt->getCurrentLevel()}<br></br> {$Gender}</td>
                              <td><a href='/myadopts/manage/{$row->aid}' class='btn btn-primary' style='width:200px; height:auto;'>Manage</a></td>
                        </tr>
                        ", FALSE));
                }
                $document->add(new Comment("</table><br /><br />{$pagination->showPage()}"));         
        //Sorting end   
    }
    
    public function creategroup(){
    $mysidia = Registry::get("mysidia");
    $document = $this->document;
    $username = $mysidia->user->username;
    $uid = $mysidia->user->uid;    
    //$document->setTitle("<center>Sort Testing!</center>");
                  $groupCount = $mysidia->db->select("pet_groups", array("uid"), "uid = '{$mysidia->user->uid}'")->rowCount();
                if($groupCount >= 5) {
                    $document->setTitle("<center>Sorry!</center>");
                    $document->add(new Comment("You can only have 5 groups. <br><br> <a href='myadopts'>Go back?</a>"));
                }
                else{
                 $document->setTitle("<center>Create a new group</center>");
                 $document->add(new Comment("
                     <form method='post' action='creategroup'>
                        <b>Group Name:</b> <br>
                        Max length is 15.<br>
                        <input type='text' name='groupname' id='groupname' maxlength='15' /><br>
                        <input type='submit' name='submit'>
                    </form>
                    <a href='/blank'>Go back</a>"));
            }
            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                $groupCount = $mysidia->db->select("pet_groups", array("uid"), "uid = '{$mysidia->user->uid}'")->rowCount();
                    if($groupCount >= 5) {
                        $document->setTitle("<center>Sorry!</center>");
                        $document->add(new Comment("You can only have 5 groups. <br><br> <a href='myadopts'>Go back?</a>"));
                    }
                    else{
                        $groupname = $_REQUEST["groupname"];
                    $mysidia->db->insert("pet_groups", array("username" => $username, "uid" => $uid, "name" => $groupname));
                    $group = $mysidia->db->select("pet_groups", array(), "name='{$groupname}' and uid='{$uid}'")->fetchObject();    
                    $id = $group->id;
                    $document->setTitle("Created group ''{$groupname}''");
                    $document->add(new Comment("
                         You created a new group called '{$groupname}'.<br><br>
                        <a href='/blank'>Go back</a>"));
                    }
            }
    }
    
    public function deletegroup(){
    $mysidia = Registry::get("mysidia");
    $document = $this->document;
    $username = $mysidia->user->username;
    $uid = $mysidia->user->uid;    
    $stmt2 = $mysidia->db->select("pet_groups", array(), "uid='{$uid}'");
    //$document->setTitle("<center>Sort Testing!</center>");
                  $groupCount = $mysidia->db->select("pet_groups", array("uid"), "uid = '{$mysidia->user->uid}'")->rowCount();
                if($groupCount = 0) {
                    $document->setTitle("<center>Sorry!</center>");
                    $document->add(new Comment("You don't have any groups. <br><br> <a href='/blank'>Go back?</a>"));
                }
                else{
                 $document->setTitle("<center>Delete a group</center>");
                 $document->add(new Comment("
                <b>Group:</b><br>
                   <form method='post' action='deletegroup'>
                        <select name='group' id='group'>
                    <option value='0' {$selected}>Ungrouped</option>"));
            
                while($row = $stmt2->fetchObject()) {
                      $id = $row->id;
                      $name = $row->name;
                      $document->add(new Comment("<option value='{$id}'>{$name}</option>"));
                }
                $document->add(new Comment("
                        </select><br>
                        <input type='submit' value='Go'>
                        </form>
                        <a href='/blank'>Go back</a>"));
            }
            
            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                        $group = $_REQUEST["group"];
                    $group_info = $mysidia->db->select("pet_groups", array(), "id='{$group}' and uid='{$uid}'")->fetchObject();    
                    $document->setTitle("Deleted ''{$group_info->name}''");
                    $document->add(new Comment("
                         '{$group_info->name}' has been deleted. All pets organized under it are now ''ungrouped''.<br><br>
                        <a href='/blank'>Go back</a>"));
                    $mysidia->db->update("owned_adoptables", array("pet_group" => 0), "pet_group = '{$group}'");
                           $mysidia->db->delete("pet_groups", "uid='{$uid}' AND id = '{$group}'");    
            }
    }
    
}
?>
		
	
 
	PHP Code:
	
		
			
<?php
class BlankController extends AppController{
    
    public function index(){        
    $mysidia = Registry::get("mysidia");
    
    }
    
    public function creategroup(){        
    $mysidia = Registry::get("mysidia");
    
    }
    
    public function deletegroup(){        
    $mysidia = Registry::get("mysidia");
    
    }
}
?>
		
	
 This version doesn't use AJAX, but it basically works the same. It just handles the variables internally instead of passing it to the URL.