FreezingBern Uchiha
FreezingBern Uchiha

Reputation: 39

Put the "$message" inside the table in codeigniter

I have a problem i want to put the $message inside the table that is a equivalent as a "Search not found".

Here is my picture outside the table $message = Search not found

View:

 <div class="z table-responsive" >
            <table class=" table table-hover"  >


                 <thead >
                             <tr >

                                   <th>ID Number</th>
                                   <th>First name</th>
                                   <th>Middle name</th>
                                   <th>Last name</th>
                                   <th>Sex</th>

                           </tr>
                      </thead>

   <?php if ( isset($message) ){
         echo  $message;

   } else{  foreach($results as $row){
        ?>

    <tbody>
          <tr>


                  <td><?php echo $row-> Idnumber ?></td>
                  <td class="text-capitalize "><?php echo $row -> Firstname ?></td>
                   <td class="text-capitalize"><?php echo $row->Middlename ?></td>
                   <td class="text-capitalize"><?php echo $row-> Lastname ?></td>
                   <td class="text-capitalize"><?php echo $row-> Sex?></td>
                            <td>
                                <a href="<?php echo site_url('viewstudentinalpha/viewspecific/'.$row->Id) ?>" class="btn btn-info " style="font-size: 18px;" type="submit" name="submit" role="button">Option</a>

                             </td>
         </tr>
      </tbody>




    <?php }} ?>




            </tbody>

            </table>
         </div> 

Upvotes: 2

Views: 137

Answers (3)

noushid p
noushid p

Reputation: 1483

try this

<tbody>
 <?php 
 if ( isset($result ) 
// or if (!isset($message)) //depend on your code
     {  
       foreach($results as $row){
 ?>

      <tr> 
              <td><?php echo $row-> Idnumber ?></td>
              <td class="text-capitalize "><?php echo $row -> Firstname ?></td>
               <td class="text-capitalize"><?php echo $row->Middlename ?></td>
               <td class="text-capitalize"><?php echo $row-> Lastname ?></td>
               <td class="text-capitalize"><?php echo $row-> Sex?></td>
               <td>
                   <a href="<?php echo site_url('viewstudentinalpha/viewspecific/'.$row->Id) ?>" class="btn btn-info " style="font-size: 18px;" type="submit" name="submit" role="button">Option</a>
              </td>
     </tr>

  <?php }}
   else 
   //or elseif(isset($message)) //depend on your code
   {
         echo $message; ?>
   }
 </tbody>

  </table>
</div> 

Upvotes: 0

Abdulla Nilam
Abdulla Nilam

Reputation: 38584

You are using wrong end tags.

This will print Search not found inside the table with colspan 5 and center aligned

Note: Most of time we check where foreach value is empty ($results). But in your case you are checking some thing else ($message).

Changes

<tr>  <!-- Changed -->
    <td colspan="5" align="center"><?php echo  $message; ?> </td>
</tr>

if ( isset($message) ){ is changed to if (!empty($message)){

Final code

<div class="z table-responsive" >
    <table class=" table table-hover"  >
        <thead >
            <tr >
                <th>ID Number</th>
                <th>First name</th>
                <th>Middle name</th>
                <th>Last name</th>
                <th>Sex</th>
            </tr>
        </thead>
        <tbody>
            <?php 
            if (!empty($message)) # improved
            {
                ?>
                <tr> # Changed
                    <td colspan="5" align="center"><?php echo  $message; ?> </td>
                </tr>
                <?php           
            } 
            else
            {  
                foreach($results as $row)
                {
                    ?>              
                        <tr>
                            <td><?php echo $row-> Idnumber ?></td>
                            <td class="text-capitalize "><?php echo $row -> Firstname ?></td>
                            <td class="text-capitalize"><?php echo $row->Middlename ?></td>
                            <td class="text-capitalize"><?php echo $row-> Lastname ?></td>
                            <td class="text-capitalize"><?php echo $row-> Sex?></td>
                            <td>
                                <a href="<?php echo site_url('viewstudentinalpha/viewspecific/'.$row->Id) ?>" class="btn btn-info " style="font-size: 18px;" type="submit" name="submit" role="button">
                                    Option
                                </a>
                            </td>
                        </tr>
                    <?php 
                }
            } 
            ?>
        </tbody>

    </table>
</div> 

Edit 01

In Controller

function search_keyword() 
{ 
    $session_data = $this->session->userdata('logged_in'); 
    $data['Username'] = $session_data['Username']; 
    $keyword = $this->input->post('keyword'); 
    $data['results'] = $this->model_adminlogin->search($keyword); 
    $this->load->view('result_view',$data); 
}

In View

Alter your if like this.

Copy all codes i have added in above for your view. and only change this few lines.

<?php 
if (!empty($results)) # Change
{
    ?>
    <tr> # Change
        <td colspan="5" align="center"> Search not found </td> # Change
    </tr>
    <?php           
} 
else
{ 

Upvotes: 1

gabe3886
gabe3886

Reputation: 4265

This isn't an issue with CodeIgniter so much as your code. What you are trying to do with the code is to put the message between the <thead> and <tbody>, and not in any table tags.

This is the same as trying to put it between rows in a table, and therefore gets interpreted as not being part of the table, and drawn outside of the table as a result.

If you put the message into the <tbody>, it will go in the right place, so you can do:

<?php if ( isset($message) ){
         echo  "<tbody><tr><td colspan='5'>" . $message . "</td></tr></tbody>";

   }....

Upvotes: 1

Related Questions