Modx Revo Formit Хук не работает

Я использую MODX 2.4.2, и у меня есть многостраничная форма FormIt. В этой форме пользователь имеет возможность выбирать из разных радиобоксов. В зависимости от выбора, сделанного пользователем, выбор оценивается. Эти значения должны быть вычислены / суммированы вместе, чтобы получить общее значение, которое будет использоваться для дальнейшего расчета.

Пока что у меня есть фрагмент / крюк «расчета» как это:

<?php

$age = $hook->getValue('age');

if($age === '40') { $result = '111'; }
if($age === '50') { $result = '222'; }

if($married === 'yes') { $result = $result + '333'; }
if($married === 'no') { $result = $result + '444'; }

$hook->setValue('all', $result);
return true;

Хук вызывается в вызове FormIt-snippet-call (наличие опечатки в нем приводит к ошибке, поэтому хуки реализованы).

[[!FormIt?
&hooks=`spam,calculating,email,redirect`
&redirectTo=`36`
&validate=`age:required, married:required,`
&emailTpl=`Step1`
&emailTo=`[email protected]`
&emailSubject=`new message`
&store=`1`
]]

Итак, представьте, что пользователь выбрал возраст «40» и что он женат. Это должно привести к 111 + 333 = 444, но я просто получаю заполнитель [[+ Все]] отображается в электронном письме, я получаю отправлено через FormIt.

Даже без части калькуляции я просто получаю пустой заполнитель [[+ Все]]:

<?php

$age = $hook->getValue('age');

if($age === '40') { $result = '111'; }
if($age === '50') { $result = '222'; }

$hook->setValue('all', $result);
return true;

Что здесь происходит, любая помощь будет оценена.

РЕДАКТИРОВАТЬ: добавить код формы:

<form action="[[~[[*id]]]]" method="post" class="form">
<input type="hidden" name="nospam:blank" value="[[+fi.nospam]]" />

<span>1. Age</span><br />

<input type="radio" name="age[]" value="40" [[!+fi.age:FormItIsChecked=`40`]]" />> 40 years
<input type="radio" name="age[]" value="50" [[!+fi.age:FormItIsChecked=`50`]]" />> 50 years
<input type="radio" name="age[]" value="60" [[!+fi.age:FormItIsChecked=`60`]]" />> 60 years
<input type="radio" name="age[]" value="70" [[!+fi.age:FormItIsChecked=`70`]]" />> 70 years
<input type="radio" name="age[]" value="80" [[!+fi.age:FormItIsChecked=`80`]]" />> 80 years

<br /><br />

<span>2. Married</span><br />

<input type="radio" name="married[]" value="yes" [[!+fi.married:FormItIsChecked=`yes`]]" />yes
<input type="radio" name="married[]" value="no" [[!+fi.married:FormItIsChecked=`50no]]" />no

<br /> <br />

<input class="button" type="submit" value="Weiter" />
</form>

0

Решение

$ результат не определен, если тесты не пройдены, поэтому в этом случае заполнитель не будет заменен. Инициируйте его с пустым значением, чтобы избежать этого.

Пожалуйста, проверьте, что в $ возраст, это массив, потому что вы использовали имя = «возраст []»

Кстати, $ замужество никогда не имеет значения в вашем коде.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]