Nekorektní zápis dat z formu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
symmetry
Člen | 71
+
0
-

Zdravím, do formuláře náčítám dta z db a po odeslání formu je updatem upravuji.

Problém je v tom, že pokud do formu cokoliv zapíši, po odeslání se mi uloží původní hodnota a ne hodnota nová.

Netuší někdo prosím, v čem by mohl býti problém?

Viz:

<?php

$id_of_seminar = $_GET["id"];
$user = new Users();
$user->AccessProtect();
$result = dibi::query('SELECT * FROM [tbl_seminars] WHERE [id] = %i',$id_of_seminar);
$all = $result->fetch();

$form = new Form;
$form->addProtection('Rozpoznán pokus o CSRF útok');
$form->addGroup('Editace semináře');

$form->addText('nazev', 'Název semináře:')
->addRule(Form::FILLED, 'Vložte název semináře')
->setValue($all->seminar_name);


$form->addText('start', 'Datum začátku:')
->addRule(Form::FILLED, 'Vložte datum začátku semináře')
->setValue($all->date_of_start);

$form->addText('end', 'Datum konce:')
->addRule(Form::FILLED, 'Vložte datum konce semináře')
->setValue($all->date_of_end);

$form->addText('place', 'Místo konání:')
->addRule(Form::FILLED, 'Vložte místo konání semináře')
->setValue($all->place);

$form->addTextArea('content', 'Informace o semináři:')
->addRule(Form::FILLED, 'Vložte informace o semináři')
->setValue($all->content);


$form->addFile('attachment','Příloha k semináři');
$select_values = array(0 => "Neschvaleno",1=> "Schvaleno");
$form->addSelect('is_allowed','Je článek schválen',$select_values);
//->setValue($all->is_allowed);

$form->addSubmit('send', 'Odeslat');
//End of form

if($form ->isSubmitted()&&$form ->isValid())
{
	//Get all values in array
	$values = $form->getValues();

	//Get separately values from form
    $name = $values['nazev'];
    $start = $values['start'];
	$end = $values['end'];
	$place = $values['place'];
	$content = $values['content'];
	$attachment=  $values['attachment']->getName();
    $is_allowed=  $values['is_allowed'];

	//Try upload file
	if(!empty($attachment))
	{
	if($values['attachment']->isOk())
	$values['attachment']->move('files/'.$attachment);
	}
    //Save form values to the DB
	$articles = new  Articles();
	if($articles->UpdateOldSeminar($id_of_seminar,$name,$start,$end,$place,$content,$attachment,$is_allowed))
	{echo "<div id=\"warning_mess\">Úprava článku proběhla bez problémů</div>";}
	else
	{echo "<div id=\"warning_mess\">Úprava článku se nezdařila</div>";}
}
//Display form
echo $form;
?>
Filip Procházka
Moderator | 4668
+
0
-

Vidím že používáš setValue a možná i setValues, taky jsem se nedávno napálil, na tohle se použív metoda setDefaults.

$defaults = array(
	'email' => "@",
	'zeme' => "cs"
);

$form->setDefaults($defaults);

zhruba takhle :)

symmetry
Člen | 71
+
0
-

Díky! Je to o.k

redhead
Člen | 1313
+
0
-

a nebo také u každého controlu setDefaultValue(‚Defaultni hodnota‘)