2010-02-20 10 views
5

Wert von FORM INPUT Hilfe !!Wie bekomme ich den Wert des Formular-Eingabefeldes im Codezeichner

// dies ist nur ein refrence von $ nm und $ fid von test_model //

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

sagen, ich habe ein form_view mit

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

und eine Funktion einzelne Reihe zu bekommen

function get($id){ 
    $query = $this->db->getwhere('test',array('id'=>$id)); 
    return $query->row_array(); 
} 

dann in Controller .. Index ($ id = 0)

und irgendwo im Index

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

und MySQL-Tabelle hat so etwas wie 1. Sieger, 2. sichtbar usw. als Name Wert

aber hier ist es nicht den Wert des Namens und der ID von form_input zu nehmen und es nicht wieder in form_view im gleichen Eingabefeld als victor etc, so zu aktualisieren und wieder zurück zur Datenbank ...

jemand bitte bitte helfen! und bitte sei einfach wie ich neu in CI bin !!

Antwort

5

Basierend auf Ihrem Kommentar zu meiner ersten Antwort, ist hier ein Beispiel für einen Controller, ein Modell und eine Ansicht, um einen Benutzereintrag aus einer Tabelle in einer Datenbank zu aktualisieren.

-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)); 
     } 
    }   
} 

Modell

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); 
    } 
} 

Ansicht

<?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

jetzt total verwirrt mit diesem letzten Ausschnitt bitte ein einfaches Beispiel Ich bin neu in CI. Sie verwenden keine aktiven Datensätze und mein Snippet verwendet nur aktive Datensätze. Ist CI so schwer zu verstehen .... – Sam

+0

Um den Datensatz zu erhalten, entschied ich mich, nur die SQL-Anweisung selbst zu schreiben, anstatt die CI-Datenbank get_where-Methode zu verwenden. Es ist nur aus Gewohnheit, denn das mache ich normalerweise. Es ist nicht wirklich wichtig. Sie können stattdessen die get_where-Methode verwenden. Der Punkt ist das allgemeine Muster des Codes: 1. Controller Aktion wird aufgerufen und übergeben ID des Benutzers zu aktualisieren. 2. Benutzerobjekt wird aus dem Modell abgerufen und an die Ansicht übergeben. 3. Die Ansicht rendert ein Formular, in dem der Name bearbeitet werden kann. 4. Das Formular wird an die gleiche Controller-Methode gesendet und das Modell wird aufgerufen, um den Benutzer zu aktualisieren. –

+0

danke für die Hilfe Ich habe die Antwort !! Vielen Dank Stephenc – Sam

0

Es ist schwierig, das Problem anhand Ihrer Codefragmente zu erkennen. Bitte versuchen Sie, ein wenig mehr Informationen über die Struktur Ihrer App und die Platzierung dieser Codebeispiele zu geben.

Angenommen, in der letzten Code-Liste ('irgendwo im Index') erhalten Sie $ ID aus dem Formular, aber Sie definieren die ID des Formular-Eingabefeldes als 'ID' Array ('name' => 'fname' , 'id' => 'id') anstelle eines ganzzahligen Wertes, so liegt es vielleicht an der Stelle, wo das Problem liegt.

Woher kommt das $ data-Array in der dritten Code-Liste?

+0

ich nicht in der Lage bin zu verstehen? können Sie mir ein kleines Beispiel geben, wo ich Wert in Eingabefeld von einem Benutzer nehme, dann sende es und es geht in mysql Tabelle (Test) und dann wieder habe ich eine Ansicht, wo ich Daten mit einem Bearbeitungsanker neben den Daten zeigen ... und wenn ich diesen Bearbeitungsanker anklicke, sollte es zum Formular mit demselben Wert im Eingabefeld zurückgehen, das von derselben mysql Tabelle (Test) genommen wird, um zu redigieren und wieder zu aktualisieren und es zurück zur Tabelle zu setzen !! erinnern Sie sich, ich nahm $ ID als Schlüssel, um jede einzelne Datenzeile zu fangen !! – Sam

0

Von Ihrer Frage Ich denke, dass Sie ein Formular anzeigen möchten, um eine Person Datensatz in der Datenbank zu bearbeiten.

Controller-Code

// 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)); 

Ansicht Code

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

nicht Echo Vergessen Sie, was aus form_label und form_input zurückgeführt wird. Dies könnte sein, wo du falsch liegst.

+0

Sagen Sie einfach, wie kann ich einen Datensatz aus einer MySQL-Tabelle in eine Form_Input-Box zu BEARBEITEN holen und nach UPDATE zurück an die Tabelle senden, z. B. | ID | Name | Vorher: 1. Vipul // dynamisch vom Benutzer eingefügt. Nachher: ​​1. Vikas // Schritte. a.) Erster Benutzer klicken Sie auf den Bearbeitungsanker. b.) Der Benutzer wird auf eine Seite umgeleitet, auf der der Eintrag bearbeitet werden kann. c.) Nach dem Bearbeiten der Benutzer klicken Sie auf Senden und Eintrag wird aktualisiert Hinweis: Wenn Benutzer den dritten Eintrag als Beispiel aktualisieren möchten, sollte es umgeleitet werden, um dritten Eintrag in Tabelle zu aktualisieren.Mit Hilfe von einigen form_input Feld.Das ist es – Sam

+0

I ' Ich habe eine weitere Antwort mit einem Controller, Model und View hinzugefügt, um zu zeigen, wie man einen solchen Benutzereintrag aktualisiert. –

+0

kannst du dich auf den Punkt verlassen, wo ich falsch liege. Das ist das Modell. Funktion main_m() { $ daten ['nm'] = array ('name' => 'fname', 'id' => 'fname'); $ Daten ['ID'] ['Wert'] = 0; return $ Daten; } Funktion insert_entry() { $ daten = array ('name' => $ this-> input-> post ('fname')); $ this-> db-> einfügen ('test', $ data); } Funktion get_all() { $ query = $ this-> db-> get ('test'); Rückgabe $ query-> result(); } Funktion get_single ($ id) { $ q = $ this-> db-> getwhere ('test', Array ('id' => $ id)); Rückgabe $ q-> row_array(); } – Sam

Verwandte Themen