Witam,
Mam następujący problem:
Chcę validować formularz w ten sposób że po kliknięciu na SUBMIT ma nastąpić Validacja i zapisanie z komunikatem dokładnie na tej stronie na której mam otwarty formularz w edycji .
Mam zrobione tak:
w akcji :
public function executeIndex(sfWebRequest $request) {
$this->books = BookTable::getInstance()->findById(3);
foreach ($this->books as $bok) {
$this->bok[] = new BookFormCreator($bok);
}
if ($request->getMethod('POST')) {
$bookList = BookTable::getInstance()->findOneById($request->getPostParameter('book[id]'));
$this->form = new BookFormCreator($bookList);
$this->form->bind($request->getParameter('book'), $request->getFiles('magazine'));
if ($this->form->isValid()) {
$bookList = $this->form->save();
$this->getUser()->setFlash('notice', sprintf('Book data have been changed')); $this->redirect('book/index');
}
}
}
natomiast w Widoku tak:
<?php foreach ($book as $b): ?>
<form action="<?php echo url_for('book/index'); ?>" method="POST" enctype="multipart/data">
<input type="hidden" name="book[id]" id="book_id" /> <?php echo image_tag('/images/'.$b['thumbnail']->getValue().'') ?>
<br /><br /> <?php echo 'cos tam cos tam' ?><?php echo $m['name'] ?>
<input type="file" name="" value="<?php echo $b['fot']->getValue(); ?>" />
<br /><br /> <a onclick="confirmation()" href="<?php echo url_for('@delete_book?id=') ?>" class="message-delete_book">Delete
</a>
<?php echo 'data1 ' ?><?php echo $b['data1'] ?><br /><br /> <?php echo 'data2 ' ?><?php echo $b['data2'] ?><br /><br /> <?php echo 'data3' ?><?php echo $b['data3'] ?>
<?php echo 'data4' ?><?php echo $b['data4] ?><br /><br />
<?php echo 'data5 ' ?><?php echo $b['data5'] ?><br /><br /> <?php echo $b['email'] ?>
<a onclick="confirmation()" href="" class="message-redirect">Pages
</a>
<input type="submit" value="Save" id="save" name="save"/>
<?php endforeach; ?>
Jak daję SAVE to dostaję informacje że żadne dane nie zostały przesłane ... po prostu tablica POST jest pusta .
Mogę prosić o podpowiedź co robiię nie tak ?
dzieki