Я построил многоэтапную форму из 14 «страниц» (шагов), на одном шаге (10) мы просим адрес, на шаге 12 мы спрашиваем количество лет в его текущем месте жительства. Если это число меньше 5 лет, я должен добавить еще один адрес, если общее количество лет составляет 5 или более лет. Таким образом, это может быть любое количество адресов, пока шаг 12 не будет равен 5 +.
Если честно, я подумал, как это сделать, но я действительно застрял.
Количество лет + месяцы с шага 12 просто сохраняются в форме до конца, когда они отправляются. Они не сохраняются как промежуточные итоги и массивы групп форм.
Вкладки / Шаги выглядят следующим образом
...
<!-- Step 10 -->
<div class="tab-pane" id="wizard-validation2-step10" role="tabpanel">
<?php
include_once 'assets/steps/step10.php';
?>
</div>
<!-- END Step 10 -->
...
<!-- Step 12 -->
<div class="tab-pane" id="wizard-validation2-step12" role="tabpanel">
<?php
include_once 'assets/steps/step12.php';
?>
</div>
<!-- END Step 12 -->
...
Включения PHP представляют собой просто поля формы, например:
<div class="form-group">
<div class="input-group">
<input type="number" placeholder="0" class="form-control input_number" id="durationyears" name="durationyears" min="2" required>
<div class="input-group-append">
<span class="input-group-text input_number">
Years
</span>
</div>
</div>
</div>
Я использую этот проект Github (спасибо VinceG): https://github.com/VinceG/twitter-bootstrap-wizard
Когда общее количество лет слишком мало, я могу go вернуться к шаг 10 с этим:
$('#rootwizard').bootstrapWizard('show', 'wizard-validation2-step10');
очистить текущие поля и каким-либо образом добавить новый адрес.
Я хотел бы знать, как я могу получить адрес из шага 10 как новый, дополнительный n-й адрес и число лет с шага 12 в качестве нового значения.
Это должно выглядеть примерно так, когда $ _POSTed:
address[0] = addressstreet
address[0] = numberofyears
address[1] = address
address[1] = numberofyears
total numberofyears = address[1][numberofyears] + address[1][numberofyears]
I'm надеясь, что кто-то может направить меня в правильном направлении. Уже поздно, был долгий день, поэтому я надеюсь, что это имело смысл. Оставайтесь в безопасности и будьте здоровы!
РЕДАКТИРОВАТЬ:
Теперь у меня есть более подробная информация, которая помогает прояснить ситуацию. Мне нужна эта структура
"Addresses": [{
"Building": "The Granary",
"BuildingNumber": "2",
"SubBuildingName": "Flat 1",
"Postcode": "FA11 0UT",
"Street": "Street",
"Town": "Megaton",
"County": "Maryland",
"TimeAtAddressYears": "13",
"TimeAtAddressMonths": "10",
"ResidentialStatus": "Living With Family"
}, {
"Building": "101",
"Postcode": "FA11 0UT",
"Street": "Vault lane",
"Town": "town",
"County": "Maryland",
"TimeAtAddressYears": "5",
"TimeAtAddressMonths": null,
"ResidentialStatus": "Tenant - Private"
}],
TimeAtAddressYears должно быть не менее 5 для всех адресов вместе взятых. Может быть 1 адрес, может быть 5 (может быть больше, если мы начнем использовать месяцы в качестве ведущего времени, поэтому 60 месяцев, когда 1 год будет 12 месяцев, очевидно.
Итак, шаг, на котором я запрашиваю TimeAtAddress Шаг 12. Мне нужно проверить с помощью jQuery, есть ли в этом итоговом значении> 5, прежде чем перейти к следующему шагу, или go вернуться к шагу 10.
Я думаю о создании / добавив скрытые поля для этого и записав новый адрес в эти скрытые поля, что-то вроде этого образца поля ввода формы для каждого из необходимых значений. «n» - это число $ i и будет увеличиваться после каждой проверки:
<input type="text" name="Addresses_Street" id="line1">
^ will save to the hidden field below for later processing
<input type="hidden" name="Addresses[n][Street]" id="Addresses_n_Street">
Итак, теперь я на шаг впереди, все еще нужно знать это сейчас:
- проверить суммарные значения
Адреса [ n] [mc_residential_durationYears] будет> 5
- go вернуться к шагу 10 при необходимости, где я могу ДОБАВИТЬ В новые поля адреса
$i++ (=n)
<input type="text" name="Addresses_Street" id="line1">
will get new address and save to the hidden field below for later processing
<input type="hidden" name="Addresses[n][Street]" id="Addresses_n_Street">
Я вижу это как решение, просто нужно все это написать или т. Это хороший способ go или есть лучший (правильный) способ go?