Search code examples
phpcodeignitercheckboxrepopulation

Re-populate dynamic generated checkbox if it fails in validation in an edit form in Codeigniter


I try form validation in codeigniter. how Re-populate checkbox which value come from database if it fails in validation in an edit form in Codeigniter.OR How

<tr>
                <td>Title</td>
                <td><input type="text" name="title" value="<?php if(!empty($mid)){echo $movie1['title'];}elseif(validation_errors()){echo set_value('title'); } ?>"></td>
            </tr>
            <tr>
                <td>Genre</td>
                <td>
                    <?php
                    if(!empty($mid))
                    {
                        $g=explode(",",$movie1['genre']);
                    }
                    foreach($genre as $getd)
                    {
                        echo"<input type='checkbox' name='genre[]'";
                        if(!empty($mid))
                        {
                              if(in_array($getd['name'],$g)) 
                                { 
                                    echo"checked='checked' ";
                                }
                        }   
                       echo"value='".$getd['name']."'>".$getd['name'];                       
                    }
                    ?>
                </td>
            </tr>

Re-populate dynamic generated checkbox if it fails in validation in an edit form in Codeigniter


Solution

  • Add this statement after value attribute show the correct code.

    if(validation_errors()){echo set_checkbox('genre[]', $getd['name']);}

    <tr>
                    <td>Title</td>
                    <td><input type="text" name="title" value="<?php if(!empty($mid)){echo $movie1['title'];}elseif(validation_errors()){echo set_value('title'); } ?>"></td>
                    <td><?php echo form_error('title'); ?></td>
                </tr>
                <tr>
                    <td>Genre</td>
                    <td>
                        <?php
                        if(!empty($mid))
                        {
                            $g=explode(",",$movie1['genre']);
                        }
                        foreach($genre as $getd)
                        {                      
    //                     echo form_checkbox('genre[]',$getd['name'],set_checkbox('genre[]', $getd['name'])).$getd['name'];
                            echo"<input type='checkbox' name='genre[]'";
                            if(!empty($mid))
                            {
                                  if(in_array($getd['name'],$g)) 
                                    { 
                                        echo"checked='checked' ";
                                    }
                            }   
                           echo"value='".$getd['name']."'";
                           if(validation_errors()){echo set_checkbox('genre[]', $getd['name']);}
                           echo ">".$getd['name']; 
                           
                        }                
                        
                        ?>
                    </td>
                    <td><?php echo form_error('genre[]'); ?></td>
                </tr>