2010-02-20 36 views
5

di FORM INPUT Help !!come ottenere il valore della casella di input del modulo nel valore codeigniter

// questo è solo un refrence di $ nm e $ FID da test_model //

$data['fid']['value'] = 0; 
    $data['nm'] = array('name'=>'fname', 
         'id'=>'id'); 

dire ho uno form_view con

<?=form_label('Insert Your Name :')?> 
<?=form_input($nm)?> 

e una funzione per ottenere un'unica fila

quindi nel controller .. indice ($ id = 0)

e da qualche parte dell'indice

if((int)$id > 0) 
     { 
      $q = $this->test_model->get($id); 
      $data['fid']['value'] = $q['id']; 
      $data['nm']['value'] = $q['name']; 
     } 

e la tabella MySQL è qualcosa di simile a 1. Victor, 2. visibile ecc come un valore nome

ma qui la sua non prendendo il valore del nome e l'ID da form_input e non mostrarlo di nuovo in form_view nella stessa casella di input come victor ecc. per aggiornarlo e reinserirlo nel database ...

chiunque per favore aiuto !! e per favore sii facile dato che sono nuovo di CI !!

risposta

5

Sulla base del tuo commento alla mia prima risposta, ecco un esempio di un controller, un modello e una vista per aggiornare una voce utente estratta da una tabella in un database.

controller

class Users extends Controller 
{ 
    function Users() 
    { 
     parent::Controller(); 
    } 

    function browse() 
    { 
    } 

    function edit($id) 
    { 
     // Fetch user by id 
     $user = $this->user_model->get_user($id); 

     // Form validation 
     $this->load->library('form_validation'); 
     $this->form_validation->set_rules('name', 'Name', 'required'); 

     if ($this->form_validation->run()) 
     { 
      // Update user 
      $user['name'] = $this->input->post('name', true); 
      $this->user_model->update_user($user); 

      // Redirect to some other page 
      redirect('users/browse'); 
     } 
     else 
     { 
      // Load edit view 
      $this->load->view('users/edit', array('user' => $user)); 
     } 
    }   
} 

Modello

class User_model extends Model 
{ 
    function User_model() 
    { 
     parent::Model(); 
    } 

    function get_user($user_id) 
    { 
     $sql = 'select * from users where user_id=?'; 
     $query = $this->db->query($sql, array($user_id)); 
     return $query->row(); 
    } 

    function update_user($user) 
    { 
     $this->db->where(array('user_id' => $user['user_id'])); 
     $this->db->update('users', $user); 
    } 
} 

View

<?php echo form_open('users/edit/' . $user['user_id']); ?> 
<div> 
    <label for="name">Name:</label> 
    <input type="text" name="name" value="<?php echo set_value('name', $user['name']); ?>" /> 
</div> 
<div> 
    <input type="submit" value="Update" /> 
</div> 
<?php echo form_close(); ?> 
+0

ora totalmente confuso con questo ultimo snippet, per favore un semplice esempio sono nuovo di CI. Non stai utilizzando i record attivi e il mio snippet utilizza solo i record attivi. È molto difficile capire l'IC .... – Sam

+0

Per recuperare il record, ho deciso di scrivere da solo l'istruzione sql piuttosto che utilizzare il metodo get_where del database dell'elemento della configurazione. È solo per abitudine poiché questo è quello che faccio normalmente. Non importa. Potresti invece utilizzare il metodo get_where. Il punto è lo schema generale del codice: 1. L'azione del controller viene richiamata e passato l'ID dell'utente da aggiornare. 2. L'oggetto utente viene recuperato dal modello e passato alla vista. 3. La vista esegue il rendering di un modulo in cui è possibile modificare il nome. 4. Il modulo viene rinviato allo stesso metodo di controllo e il modello viene richiamato per aggiornare l'utente. –

+0

grazie per l'aiuto ho avuto la risposta !! Grazie mille Stephenc – Sam

0

È difficile vedere il problema dai frammenti di codice, ti preghiamo di provare e fornire un po 'più di informazioni sulla struttura della tua app e dove sono posizionati questi esempi di codice.

Presumere nell'ultimo elenco di codici ("da qualche parte nell'indice") si ottiene $ id dal modulo, ma si definisce l'ID della casella di input del modulo come array 'id' ('name' => 'fname' , 'id' => 'id') piuttosto che un valore intero, quindi forse questo è dove si trova il problema.

Dove viene passato l'array $ data nel terzo elenco di codici?

+0

io non sono in grado di capire? puoi darmi un piccolo esempio in cui prendo valore nella casella di input da un utente, quindi lo invio e va a mysql table (test) e poi ho una vista in cui mostro i dati con un'ancora di modifica accanto ai dati ... e quando clicco su quell'ancora di modifica dovrebbe tornare al form con lo stesso valore nella casella di input presa dalla stessa tabella mysql (test) per modificarla e aggiornarla di nuovo e postarla di nuovo alla tabella !! ricordo che ho preso $ id come chiave per catturare ogni singola riga di dati !! – Sam

0

Dalla tua domanda penso che desideri visualizzare un modulo per modificare un record di persona nel database.

Controller cod

// Normally data object is retrieved from the database 
// This is just to simplify the code 
$person = array('id' => 1, 'name' => 'stephenc'); 

// Pass to the view 
$this->load->view('my_view_name', array('person' => $person)); 

Visualizza codice

<?php echo form_label('Your name: ', 'name'); ?> 
<?php echo form_input(array('name' => 'name', 'value' => $person['name'])); ?> 

Non dimenticare di eco ciò che viene restituito dal form_label e form_input. Questo potrebbe essere dove stai andando male.

+0

Indica semplicemente come posso recuperare un record da una tabella mysql a una form_input box in EDIT e inviarlo di nuovo alla tabella dopo UPDATE, ad esempio | id | Nome | Prima: 1. Vipul // inserito dinamicamente dall'utente. Dopo: 1. Vikas // passaggi. a.) Primo utente fai clic su modifica ancora. b.) L'utente viene reindirizzato a una pagina in cui è possibile modificare la voce. c.) Dopo aver modificato l'utente, fare clic su Invia e la voce viene aggiornata Nota: se l'utente desidera aggiornare la terza voce come esempio, dovrebbe essere reindirizzato alla terza voce nella tabella per l'aggiornamento. Con l'aiuto di alcuni campi form_input. Che cos'è – Sam

+0

I ' Ho aggiunto un'altra risposta con un controller, un modello e una vista per mostrare come aggiornare tale voce utente. –

+0

puoi capire dove mi sbaglio. questo è il modello. function main_m() { $ data ['nm'] = array ('nome' => 'fname', 'id' => 'fname'); $ data ['id'] ['value'] = 0; restituiscono $ dati; } function insert_entry() { $ data = array ('name' => $ this-> input-> post ('fname')); $ this-> db-> insert ('test', $ data); } function get_all() { $ query = $ this-> db-> get ('test'); return $ query-> result(); } function get_single ($ id) { $ q = $ this-> db-> getwhere ('test', array ('id' => $ id)); restituisce $ q-> row_array(); } – Sam

Problemi correlati