我使用ValidForm Builder在PHP中构建复杂的表单 我正在使用框架面临一些问题......我想制作一个包含多个隐藏区域或FieldSet的向导表单,这些区域应该有一个可点击的按钮,点击后会显示下一个区域。
这是我想要做的一个例子:
$profile_page = $objForm->addPage("profile_page", "Your Profile");// 1st page
$product_area = new Area("1 - Choose your product"); // 1st Area
// fields to be validated before showing the next Area, whene clicking on
// the button 'Next'
$product_name = $product_area ->addField ....
$product_price = $product_area ->addField ....//
$product_type = $product_area ->addField ....//
$next_btn = new Button('Next'); // the Next button
// throw an error if its an Area object
$product_area ->addField($next_btn); // can't add a navigation Bouton !
$user_area = new Area("2 - Your Informations"); // 2nd Area 'hidden'
$user_firstname = $user_area->addField ....// 2nd Area fields
$user_lastname = $user_area->addField ....//
....
我可以切换到Fieldset,但我无法在Buttons和Fieldset或Area对象之间添加动作或条件。
那么如何添加与Button click相关的条件,所以如果我点击指定的Button,它会在验证当前后显示下一个隐藏区域......
提前谢谢..
答案 0 :(得分:0)
如果您使用ValidWizard,则无需自行添加下一个或上一个按钮和操作。 ValidWizard会为您解决这个问题。
您需要将validwizard.js文件添加到您的代码中。
感谢您的问题,我发现了网页导航的问题,并在GitHub上创建了拉取请求。一旦将其添加到基本代码中,页面导航将按预期工作。
一个非常基本的设置是:
$objForm = new ValidWizard(
"awesomeWizard",
"Please fill out my cool wizard",
"/stuff",
array(
"nextLabel" => "Next page",
"previousLabel" => "Previous page"
)
);
$objForm->addPage("firstPage", "First Page");
$objForm->addField(
'name',
'Name',
ValidForm::VFORM_STRING,
["required" => true],
["required" => "This field is required"]
);
$objForm->addPage("secondPage", "Second Page");
$objForm->addField(
'city',
'City',
ValidForm::VFORM_STRING,
["required" => true],
["required" => "This field is required"]
);
//*** Output submitted data or the form
if ($objForm->isSubmitted() && $objForm->isValid()) {
$strOutput = $objForm->valuesAsHtml();
} else {
$strOutput = $objForm->toHtml();
}
echo $strOutput;