如何向区域

时间:2017-10-04 21:28:19

标签: validform

我使用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,它会在验证当前后显示下一个隐藏区域......

提前谢谢..

1 个答案:

答案 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;