2017-10-26 2 views
1

Ich habe einige Herausforderung Aktualisierung Tabelle ein Formular mit Sitzungsbenutzerdaten aus einer anderen Tabelle verbunden. Jedes Mal wenn ich renne, zeigt es undefined Funktion an. Bitte lassen Sie mich wissen, wo ich es falsch mache, so könnte es beheben. Bitte finden Sie Zeit, um es zu überprüfen Ich bin ein Neuling. Hier ist der Controllercodeigniter: Update-Tabelle von einer anderen Tabelle mit Sitzung

public function index() 
    { 

     if ($this->session->userdata('logged_in')) 
     { 

      $id = $this->session->userdata('id'); 
      $this->load->model('Userinfo_model'); 
      $data['result'] = $this->Userinfo_model->get_users($id); 

      $this->load->view("usermain_info", $data); 

     } 
    } 
    public function update_user(){ 
     $data = $this->input->post('userId'); 
     $id = array(
      'balance' => $this->input->post('balance'), 
      'id' => $this->input->post('id') 
     ); 
     $this->Userinfo_model->update_user($id, $data); 
     $this->index(); 
    } 

Modell

function get_users($userid) 
    { 

     if (isset($this->session->userdata['logged_in'])) { 

      $userid = ($this->session->userdata['logged_in']['id']); 
     } else { 
      header("location: nwpgroup/nwp2/index.php"); 
     } 

     /* all the queries relating to the data we want to retrieve will go in here. */ 

     $query = $this->db->query("SELECT * FROM walletbalance WHERE userId='$userid'"); 


     return $query; 
    } 
    function update_user($id,$data){ 
     if (isset($this->session->userdata['logged_in'])) { 

      $data = ($this->session->userdata['logged_in']['id']); 
     } else { 
      header("location: nwpgroup/nwp2/index.php"); 
     } 
     $this->db->where('userId', $data); 
     $this->db->update('walletbalance', $id); 
    } 

Ansicht

<form method="post" action="<?php echo base_url() . "index.php/userinfo/update_user"?>"> 
      <?php if($result->num_rows() == 0){ 
       echo 'No user found'; 
      } 
      else { 
       foreach ($result->result_array() as $new_user){ ?> 
        <h4>Your name:<input value=" <?php echo $new_user['balance'] ?>" type="text" /> </h4><br /> 
        <h4>Your name:<input value=" <?php echo $new_user['id'] ?>" type="text"/> </h4><br/> 
        <h4>Your name: <input value="<?php echo $new_user['userId'] ?>" type="hidden"/> </h4> 
        <input type="submit" id="submit" name="dsubmit" value="Update"> 
       <?php } 
      } 
      ?> 

Fehlermeldung

Message: Undefined property: Userinfo::$Userinfo_model 

und

Message: Call to a member function update_user() on null 

Danke, bin ich

+0

können Sie bitte den Fehlercode hier einfügen? –

+0

@MadAngle Ich habe es aktualisiert –

+0

versuchen, Ihre '$ ID'-Array im Modell vor dem Update zu drucken. und zu Ihrer Information ist es nicht nötig, '$ data' zum Modell zu senden. '$ this-> Userinfo_model-> update_user ($ id);' genug, um die Modellfunktion aufzurufen – geeth

Antwort

0

Ihre Ansicht wie folgt ändern:

<form method="post" action="<?php echo base_url() . "index.php/userinfo/update_user"?>"> 
     <?php if($result->num_rows() == 0){ 
      echo 'No user found'; 
     } 
     else { 
      foreach ($result->result_array() as $new_user){ ?> 
       <h4>Your name:<input value=" <?php echo $new_user['balance'] ?>" type="text" name="balance" /> </h4><br /> 
       <h4>Your name:<input value=" <?php echo $new_user['id'] ?>" type="text" name="id" /> </h4><br/> 
       <h4>Your name: <input value="<?php echo $new_user['userId'] ?>" type="hidden" name="userId"/> </h4> 
       <input type="submit" id="submit" name="dsubmit" value="Update"> 
      <?php } 
     } 
    ?> 
</form> 

Form nur Daten an den Server senden, wenn das Element einen Namen

hat und Sie können ein Formular nicht mehrmals einreichen. Der obige Code erstellt Update-Button für jede Zeile. Wenn Sie also alle Datensätze in einer einzigen Aktualisierung aktualisieren möchten, verwenden Sie update_batch() im Code-Signierer. und ändern Ansicht wie folgt:

foreach ($result->result_array() as $new_user){ ?> 
       <h4>Your name:<input value=" <?php echo $new_user['balance'] ?>" type="text" name="balance" /> </h4><br /> 
       <h4>Your name:<input value=" <?php echo $new_user['id'] ?>" type="text" name="id" /> </h4><br/> 
       <h4>Your name: <input value="<?php echo $new_user['userId'] ?>" type="hidden" name="userId"/> </h4> 

      <?php } ?> 
<input type="submit" id="submit" name="dsubmit" value="Update"> 

Referenz: https://www.codeigniter.com/userguide3/database/query_builder.html#updating-data

+0

Dank @geeth, es hat funktioniert –

0

In Ihrer update_user Funktion dankbar, dass Sie das usermain_info Modell nicht enthalten sind. Deshalb kommt der Fehler. Bitte erstellen Sie die Konstruktorfunktion und fügen Sie das Modell ein. Ich habe deinen Code aktualisiert. Versuche es damit.

<?php  
    function __construct() { 
     parent::__construct(); 
     $this->load->library('session'); 
     $this->load->model('Userinfo_model'); 
    } 
    public function index(){ 
     if ($this->session->userdata('logged_in')){ 
      $id = $this->session->userdata('id');    
      $data['result'] = $this->Userinfo_model->get_users($id); 
      $this->load->view("usermain_info", $data); 
     } 
    } 
    public function update_user(){ 
     $data = $this->input->post('userId'); 
     $id = array(
      'balance' => $this->input->post('balance'), 
      'id' => $this->input->post('id') 
     ); 
     $this->Userinfo_model->update_user($id, $data); 
     $this->index(); 
    } 

?> 
+0

Hallo, Ich habe gerade versucht, Ihr Modell, nach der Aktualisierung, löschte es das Gleichgewicht, das zurückgegeben wird 0.00 –

+0

Ich habe gerade den Fehler im Code behoben. –

+0

Es ist immer noch das gleiche Ergebnis, d. H 0.00 –

Verwandte Themen