2010-04-29 9 views
10

Mam prosty formularz w codeigniter, który chciałbym użyć do edycji lub rekordów. Jestem na etapie, w którym wyświetlany jest mój formularz, a wartości wprowadzane są w odpowiednich polach wprowadzania.Codeigniter: Jak zbudować formularz edytujący, który używa sprawdzania poprawności formularza i ponownego zasiedlania?

Odbywa się to po prostu przez ustawienie wartości wspomnianych pól, aby cokolwiek muszą być w widoku:

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

Ale, jeśli chcesz używać form_validation w CodeIgniter to muszę dodać kod THOS do moja mark-up:

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

Więc nie wartość można ustawić za pomocą funkcji SET_VALUE powinna trzeba odbudowanym w przypadku błędu z danych pocztowych.

Czy istnieje sposób na połączenie tych dwóch elementów, aby w formularzu edycji mogły być wyświetlane wartości do edycji, ale również ponownie wypełnione?

Dzięki

Odpowiedz

19

set_value() może rzeczywiście wziąć drugi argument na wartość domyślną, jeśli nie ma nic do repopulate (Przynajmniej patrząc na wersjach 1.7.1 i 1.7.2 CI). Zobacz następujący z biblioteki Form_validation.php (linia 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']; 
} 

więc biorąc to pod uwagę powinna być w stanie po prostu zdać domyślną wartość SET_VALUE tak:

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

Jeśli nie ma wartości do ponownego zaludnienia, set_value() będzie domyślnie $article['short_desc']

Nadzieję, że pomaga.

+0

wygląda na miejscu - otuchy! – Sergio

+0

Idealne rozwiązanie. Podczas testowania tej "wartości zestawu" należy zastosować funkcję "set_value()" do wszystkich pól. Testowanie go na jednym polu nie da wyniku. – Pravin

Powiązane problemy