所以我想在一个页面上处理两种表单,并且我有一些问题需要处理;我有一个名为“接触”模块,这里是indexSucces.php在一个页面中处理两种不同的表单
<div id="registerForm">
<form action="<?php echo url_for('contact'); ?>" method="post" id="loginForm">
<?php foreach ($loginForm as $widget): ?>
<?php if(!$widget->isHidden()) { ?>
<?php echo $widget->renderRow(); ?>
<?php } else { ?>
<?php echo $widget->render() ?>
<?php } ?>
<?php endforeach; ?>
<br/><input type="submit" id="loginSubmit" class="btn primary" value="<?php echo __('Envoyer'); ?>" />
</form>
</div>
<div id="registerForm">
<form action="<?php echo url_for('contact'); ?>" method="post" id="registerForm">
<?php foreach ($registerForm as $widget): ?>
<?php if(!$widget->isHidden()) { ?>
<?php echo $widget->renderRow(); ?>
<?php } else { ?>
<?php echo $widget->render() ?>
<?php } ?>
<?php endforeach; ?>
<br/><input type="submit" id="registerSubmit" class="btn primary" value="<?php echo __('Envoyer'); ?>" />
</form>
</div>
是否可以处理在单个动作页面?我需要知道如何去做,我从昨天开始就陷入困境。例如,当我想提交第一个表单时,它想要提交第二个表单。
有人能为我提供一个例子吗?我可以发布我的sh * *操作页面,如果你想看看我是如何处理这个问题的。
在此先感谢!
编辑:
I made this code according to your advice :
public function executeIndex(sfWebRequest $request)
{
$this->loginForm = new loginForm();
$this->registerForm = new registerForm();
$this->processForm($request, $this->loginForm, $this->registerForm);
}
public function processForm(sfWebRequest $request, sfForm $loginForm, sfForm $registerForm)
{
if($request->hasParameter('login'))
{
if($request->isMethod('post'))
{
$loginForm->bind($request->getParameter($loginForm->getName()));
if($loginForm->isValid())
{
$this->redirect('payement');
}
}
} elseif ($request->hasParameter('register'))
{
if($request->isMethod('post'))
{
$registerForm->bind($request->getParameter($registerForm->getName()));
if($registerForm->isValid())
{
$this->redirect('payement');
}
}
}
}
的registerForm正确提交,我可以看到我已经在形式等作出的错误,如果它是正确的,这是正确的重定向。但是,当我提交登录表单,这里是错误:传递给sfForm ::绑定
参数1()必须是一个数组,字符串中给定:在这条线
$loginForm->bind($request->getParameter($loginForm->getName()));
为什么?
请注意,你不应该有一个页面上的多个元素使用相同的ID。 ID必须是唯一的 – ManseUK 2012-01-06 11:34:25
啊,我看到了,这是一个错误。感谢您的建议。 – h1ghfive 2012-01-06 12:20:34