2017-09-11 2 views
0

Ich bin neu in codeigniter und möchte daher wissen, wie kann dieser Code geändert werden, um die MVC zu passen? Jetzt habe ich sowohl HTML-und PHP-Codes in der Ansicht.Alle Vorschläge, um es zu verbessern und es getrennt in Controller und anzeigen wird geschätzt.Wie kann ich die PHP- und HTML-Codes in der Ansicht trennen?Wie ändert man den untenstehenden Code basierend auf codeigniter mvc?

My View is as follows 


<html> 
     <head> 
      <script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script> 
      <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css" rel="stylesheet" /> 
      <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script> 
      <script type="text/javascript"> 
       $(document).ready(function() { 
        $(".searchabledropdown").select2(); 

      </script> 
     </head> 
     <body> 

      <form action=""> 
       <div> 
        <select id="main_language" name ="main_language"> 
         <option>English</option> 
         <option>Japanese</option> 
        </select> 
        <input type="button" value="Set Main Language"> 
       </div> 
       <div> 
        <h3>Translation Management</h3> 
       </div> 
       <div> 
         <select name="lang_choice1" id="lang_choice1"> 
          <!-- <option value="" selected="selected">-----</option>--> 
          <?php 
          $path = './application/language/'; 
          $dir = new DirectoryIterator($path); 
          foreach ($dir as $fileinfo) { 
           if ($fileinfo->isDir() && !$fileinfo->isDot()) { 
            echo "<option value='" . $fileinfo->getFilename() . "'>".$fileinfo->getFilename()."</option>"; 
           } 
          } 
          ?> 
         </select> 
        => <select name="lang_choice2"> 
         <!--<option value="" selected="selected">-----</option>--> 
         <?php 
         $path = './application/language/'; 
         $dir = new DirectoryIterator($path); 
         foreach ($dir as $fileinfo) { 
          if ($fileinfo->isDir() && !$fileinfo->isDot()) { 
           echo "<option value='" . $fileinfo->getFilename() . "'>".$fileinfo->getFilename()."</option>"; 
          } 
         } 
         ?> 
        </select> 
       </div> 

Mein Controller ist wie folgt:

class Language extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 

    } 

    public function index() 
    { 
     $this->accesscontrol->can_or_redirect('view', 'translation'); 
     $this->output->view('translation/language'); 
    } 

} 

Antwort

0

Sie sollten die DirectoryIterator bezogenen Vorgänge auf dem Controller-Funktion bewegen, dann mit allen Dateien eines Vermittlers Array haben, die Ihre bedingten Kriterien erfüllen und dieses Array übergeben zu Aussicht. Aus Ihrer Sicht drucken Sie einfach das Array ohne zusätzliche Operationen.

Es gibt ein zweites Argument für View-Funktion des CI, in Ihrem Fall es etwas aussehen würde:

$this->output->view('translation/language', $array_with_files); 

Bitte beachten https://www.codeigniter.com/user_guide/general/views.html

Verwandte Themen