你能領導這樣的事情嗎? 你必須確定你想如何處理表格。 如果通過Ajax - 下面的例子。
<?php
class TestController
extends Zend_Controller_Action
{
function indexAction() {
}
// render form
function getFormAction() {
$form = new Zend_Form();
$form->addElement('hidden', 'isSubmit', array(
'value' => 1
));
$form->addElement('text','foo', array(
'required' => true
));
$form->addElement('submit','Send', array(
'label' => 'ok'
));
// $data
if($_POST['isSubmit'] && $form->isValid($_POST)) {
// ...............
}
if($this->_request->isXmlHttpRequest()) {
// render only ajax content in layout-content.phtml
$this->_helper->layout->setLayout('layout-content');
} else {
// render full page elements
$this->_helper->layout->setLayout('layout-default');
}
$this->view->form = $form;
}
}
Temlates:
<!-- index.phtml -->
<div id="form-wrapper"></div>
<script type="text/javascript">
<!--
$(function() {
$("#form-wrapper").load("<?= $this->url(array('action'=>'get-form')) ?>");
});
//-->
</script>
<!-- index.phtml -->
而且
<!-- get-form.phtml -->
<?php
if($this->form) {
$this->form->setAttrib('id', 'my-form');
$this->form->setAction($this->url());
echo $this->form;
}
?>
<script type="text/javascript">
<!--
$(function() {
$('#my-form').submit(function() {
var f = $(this);
$.post(
f.attr('action'),
f.serialize(),
function(data) {
$('#form-wrapper').html(data);
}
);
return false;
});
});
//-->
</script>
<!-- /get-form.phtml -->
迎接pawella