2016-12-06 2 views
0

Ich frage mich, warum ich immer noch diese Fehlermeldung erscheint.Edit Pages - Ungültiges Argument für foreach()

Ein PHP-Fehler aufgetreten

Schweregrad: Warnung

Nachricht: Invalid argument für foreach geliefert()

Dateiname: views/editpages.php

Zeilennummer: 48

Rückverfolgung:

Datei: C: \ Program Files (x86) \ EasyPHP-devserver-14.1VC9 \ data \ localweb \ masterlinkci2 \ application \ admin \ views \ editpages.php Line: 48 Funktion: _error_handler

Controller/CPages. php

public function editpagesupdate() { 

    $data['pagessuccess'] = ''; 

    $pages_id = $this->uri->segment(3); 

    $data['pages'] = $this->Mpages->update_pages($pages_id); 

    $this->load->view('editpages', $data); 

} 

Modelle/Mpages.php

public function update_pages($pages_id) 
{ 

    $data = array(
     'pages_name' => $this->input->post('pages_name'), 
     'create_date' => $this->input->post('create_date'), 
     'pages_order' => $this->input->post('pages_order'), 
     'pages_content' => $this->input->post('pages_content') 
    ); 

    $this->db->where('pages_id', $pages_id); 
    $query = $this->db->update('pages', $data); 
    //return $query->result_array(); 
    return $query; 

} 

views/editpages.php

   <div class="widget-box"> 
        <div class="widget-title"><h5>Pages</h5></div> 
        <div class="widget-content"> 

        <?php echo form_open('cpages/editpagesupdate'); ?> 
        <table border="0" style="width: 100%; height: 90px;"> 
         <tr> 
          <td>Pages Name</td> 
          <td><input type="text" name="pages_name" value="<?php echo $pages_item['pages_name']; ?>"></td> 
         </tr> 
         <tr> 
          <td>Create Date</td> 
          <td><input type="text" name="create_date" value="<?php echo $pages_item['create_date']; ?>"></td> 
         </tr> 
         <tr> 
          <td>Order</td> 
          <td><input type="text" name="pages_order" value="<?php echo $pages_item['pages_order']; ?>"></td> 
         </tr> 
         <tr> 
          <td>View Content</td> 
          <td><textarea rows="3" cols="20" name="pages_content"><?php echo $pages_item['pages_content']; ?></textarea></td> 
         </tr> 
         <tr> 
          <td></td> 
          <td><input type="submit" class="edit" name="submit" value="SUBMIT"></td> 
         </tr> 
        </table>    
        </div> 
       </div>  

       <?php endforeach; ?> 
+0

Ist der Fehler, weil Ihr editpages.php eine hat ' endforeach', aber kein passender Anfang 'foreach'? – ourmandave

+1

Da Sie get() in Ihrem Modell nur nicht aktualisieren ** "UPDATE gibt TRUE oder FALSE zurück" erhält keine Daten, ** wie wir oft auf Ihren anderen Konten – user4419336

Antwort

0

Controller/Cpages.php

public function editpagesupdate() { 
    $data['pagessuccess'] = ''; 
    $pages_id = $this->uri->segment(3); 
    $update = $this->Mpages->update_pages($pages_id); 
    $data = array(); 

    /* get updated pages here */ 
    if($update){ 
     $data['pages'] = $this->Mpages->get_pages(); 
    } 

    $this->load->view('editpages', $data); 
} 

Modelle/Mpages.php

public function get_pages() 
{ 
    $query = $this->db->get('pages'); 
    return $query->result_array(); 
} 

views/editpages.php

<div class="widget-box"> 
     <div class="widget-title"><h5>Pages</h5></div> 
     <div class="widget-content"> 
      <?php echo form_open('cpages/editpagesupdate'); ?> 
      <table border="0" style="width: 100%; height: 90px;"> 
       <?php foreach($pages as $pages_item) : ?> 
       <tr> 
        <td>Pages Name</td> 
        <td><input type="text" name="pages_name" value="<?php echo $pages_item['pages_name']; ?>"></td> 
       </tr> 
       <tr> 
        <td>Create Date</td> 
        <td><input type="text" name="create_date" value="<?php echo $pages_item['create_date']; ?>"></td> 
       </tr> 
       <tr> 
        <td>Order</td> 
        <td><input type="text" name="pages_order" value="<?php echo $pages_item['pages_order']; ?>"></td> 
       </tr> 
       <tr> 
        <td>View Content</td> 
        <td><textarea rows="3" cols="20" name="pages_content"><?php echo $pages_item['pages_content']; ?></textarea></td> 
       </tr> 
       <?php endforeach; ?> 
       <tr> 
        <td></td> 
        <td><input type="submit" class="edit" name="submit" value="SUBMIT"></td> 
       </tr> 
      </table>    
     </div> 
    </div>  
+0

haben Sie nicht die get_pages Funktion korrekt. Ihre fehlenden 'from()' und 'get()' https://www.codeigniter.com/user_guide/database/query_builder.html#selecting-data – user4419336

+0

Ich habe die Funktion get_pages() geändert. Danke, dass du mich korrigiert hast. –

Verwandte Themen