2010-04-29 4 views
10

Ich habe eine einfache Form in Codeigniter, die ich für die Bearbeitung oder Datensätze verwenden möchte. Ich bin in der Phase, wo mein Formular angezeigt wird und die Werte in die entsprechenden Eingabefelder eingegeben.Codeigniter: Wie erstellt man ein Bearbeitungsformular, das Formularvalidierung und Neubestückung verwendet?

Dies wird durch einfaches Einstellen der Werte erfolgt der Boxen zu, was sie brauchen, in der Ansicht zu sein:

<input type="text" value="<?php echo $article['short_desc'];?>" name="short_desc" /> 

Aber, wenn ich will form_validation in codeigniter verwenden dann muss ich thos Code hinzufügen mein Aufschlag:

<input value="<?php echo set_value('short_desc')?>" type="text" name="short_desc" /> 

So nicht der Wert kann mit der set_value Funktion eingestellt werden soll es auf Fehler von den Post-Daten neu besiedelt werden muß.

Gibt es eine Möglichkeit, die beiden zu kombinieren, so dass mein Bearbeitungsformular die zu bearbeitenden Werte anzeigen kann, aber auch wieder füllt?

Dank

Antwort

19

set_value() kann für einen Standardwert ein zweites Argument tatsächlich nehmen, wenn es nichts (zumindest Blick auf CI-Versionen 1.7.1 und 1.7.2) wieder zu bevölkern ist. Siehe die folgenden von der Form_validation.php Bibliothek (Linie 710):

/** 
* Get the value from a form 
* 
* Permits you to repopulate a form field with the value it was submitted 
* with, or, if that value doesn't exist, with the default 
* 
* @access public 
* @param string the field name 
* @param string 
* @return void 
*/ 
function set_value($field = '', $default = '') 
{ 
    if (! isset($this->_field_data[$field])) 
     { 
      return $default; 
     } 

     return $this->_field_data[$field]['postdata']; 
} 

Also, in diesem Sinne sollten Sie in der Lage sein, einfach Ihren Standard-Wert übergeben, so set_value:

<input value="<?php echo set_value('short_desc', $article['short_desc'])?>" type="text" name="short_desc" /> 

Wenn Es gibt keinen Wert zum Wiederbefüllen, set_value() wird standardmäßig $article['short_desc']

Hoffnung, die hilft.

+0

sieht gut aus - Prost! – Sergio

+0

Perfekte Lösung. Wenn Sie diesen "set_value" testen, wenden Sie bitte die Funktion "set_value()" auf alle Felder an. Das Testen auf einem einzelnen Feld führt nicht zum Ergebnis. – Pravin

Verwandte Themen