Как я могу разбить форму PHP на два раздела, перед отправкой в ​​базу данных? - PullRequest
1 голос
/ 19 марта 2010

Я настроил PHP-форму для конкурса для пользователей, чтобы ввести всю информацию, которая будет храниться в базе данных.Для этого я использовал учебное пособие по NetTut +.

У меня есть форма, отправляемая в базу данных по мере необходимости, но с таким большим количеством дополнительных вопросов я хотел бы разделить форму на два отдельных раздела.Очевидно, что на первой странице будет указано перейти к следующему шагу до второго шага, позволяющего отправлять форму в базу данных.

Содержимое, которое видит пользователь, должно быть разделено, но все должно быть частьютакая же формаШаг 1> Шаг 2 перед отправкой.

Кто-нибудь знает или рекомендует какие-либо методы для этого?

Я приложил код ниже.

<form method="post" action="">

    <fieldset>

        <ul>
            <li>
                <label for="code">Entry Code On-Pack</label>
                <input type="text" name="code" />
            </li>
            <li>
                <label for="name">Name</label>
                <input type="text" name="name" />
            </li>
            <li>
                <label for="email">Email</label>
                <input type="text" name="email" />  
            </li>
            <li>
                <label for="addressone">Address</label>
                <input type="text" name="addressone" />
            </li>
            <li>
                <label for="addressone">&nbsp;</label>
                <input type="text" name="addresstwo" />
            </li>
            <li>
                <label for="addressone">&nbsp;</label>
                <input type="text" name="addressthree" />       
            </li>
            <li>
                <label for="telephone">Telephone</label>
                <input type="text" name="telephone" />  
            </li>
            <li>
                <label for="dob">Date of Birth</label>
                <input name="dob" type="text" value="[dd/mm/yy]" /> 
            </li>
            <li>
                <label for="q1">Where have you seen Cookstown advertised?</label><br />
                <input type="checkbox" name="q1cb1" /><label for="q1cb1">Magazines</label><br />
                <input type="checkbox" name="q1cb2" /><label for="q1cb2">Billboards</label><br />
                <input type="checkbox" name="q1cb3" /><label for="q1cb3">Television</label><br />
                <input type="checkbox" name="q1cb4" /><label for="q1cb4">Radio</label><br />
                <input type="checkbox" name="q1cb5" /><label for="q1cb5">Online</label><br />
                <input type="checkbox" name="q1cb6" /><label for="q1cb6">Public Transport</label><br />
                <input type="checkbox" name="q1cb7" /><label for="q1cb7">Bus Stops</label><br />
            </li>
            <li>
                <label for="q2">How well do you remember those advertisments?</label><br />
                <input type="radio" name="q2" value="VeryWell"/><label for="q1cb1">Very well</label><br />
                <input type="radio" name="q2" value="FairlyWell"/><label for="q1cb2">Fairly well</label><br />
                <input type="radio" name="q2" value="FewDetails"/><label for="q1cb3">A few details</label><br />
                <input type="radio" name="q2" value="NotAtAll"/><label for="q1cb4">Not at all</label><br />
            </li>
                <label for="tc">Do you accept the terms and conditions</label>
                <input type="checkbox" name="tc" class="styled" />
            </li>
            <li>&nbsp;</li>
            <li>
                <input type="submit" value="Enter Competition" class="large blue button" name="signup" />           
            </li>
        </ul>

    </fieldset>

</form> 

Ответы [ 4 ]

1 голос
/ 19 марта 2010

Использование механизма сессий для хранения данных 1 шага

0 голосов
/ 19 марта 2010

Еще один вариант - поместить дополнительные поля в скрытый элемент div на той же странице и использовать javascript, чтобы показать их после завершения первого набора. Преимущество для вас заключается в том, что он упрощает обработку ваших форм. Также для ваших пользователей, они не будут иметь поездку в оба конца на сервер, чтобы получить другую часть формы.

Это, конечно, требует, чтобы у ваших пользователей был включен JavaScript. Лучше всего по умолчанию показывать все поля на одной странице, а затем использовать JS, чтобы скрыть второй пакет до отображения страницы.

0 голосов
/ 19 марта 2010

Сеансы обычно являются предпочтительным способом сделать это, но скрытые поля формы будут работать так же хорошо.

Это довольно легко сделать - после первой отправки сохраните значения в сеансе - сначала проверьте ихесли вам нравится, это, вероятно, хорошая идея сделать это на самом деле.Затем перейдите на следующую страницу и, после отправки, проверьте вторую группу ответов и поместите их в базу данных.

Скрытые поля формы тоже работают, но я предпочитаю подход на основе сеансов.

Удачи!

0 голосов
/ 19 марта 2010

Вы можете передать их на вторую страницу и затем поместить их как скрытые переменные. Вы также можете использовать переменные сеанса.

пример со скрытыми полями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...