tlekkanapin
Новичок
Столкнулся с такой вот проблемой.
Есть форма для редакт. резюме человека. Исходные данные для изменения вытаскиваются из БД мускул вставляются в текстовые поля как value по умолчанию.
Но так же есть выпадающий список (меню) с выбором месяца рождения.
Как сделать. чтобы РНР вытаскивая из БД значение месяца рождения, устанавливал это значение в качестве selected во всем списке месяцев.
Если кому то не понятно то покажу наглядно.
Вот форма добавления анкеты:
HTML:
1. <form action="">
2. Месяц рождения:
3. <select name="month_pr" size="1" id="month_pr">
4. <option value="" selected>- -</option>
5. <option value="Январь">Январь</option>
6. <option value="Февраль">Февраль</option>
7. <option value="Март">Март</option>
8. <option value="Апрель">Апрель</option>
9. <option value="Май">Май</option>
10. <option value="Июнь">Июнь</option>
11. <option value="Июль">Июль</option>
12. <option value="Август">Август</option>
13. <option value="Сентябрь">Сентябрь</option>
14. <option value="Октябрь">Октябрь</option>
15. <option value="Ноябрь">Ноябрь</option>
16. <option value="Декабрь">Декабрь</option>
17. </select>
В данной форме, выбранным значением является пустое поле, чтобы запретить добавление в БД пустых значений.
А мне теперь надо чтобы при открытии страницы редактирования данного резюме, также выводился весь список месяцев, и значением по умолчанию уже был не <option value="" selected>- -</option> , а месяц установленный при создании анкеты.
Надеюсь я ясно изложился.
К примеру, с числом даты рождения я справился вот таким вот способом:
PHP:
1. День
2. <select name="day">
3. <?php
4. $d = 0;
5. if(empty($myrow["имя поля числа в БД"])) { echo "<option value=\"\" selected>- -</option>";}
6.
7. do {
8. $d++;
9. if($d == $myrow["имя поля числа в БД"]) { $selected = "selected";}
10. else { $selected = "";}
11. if($d < 10) {$w = "0";} else {$w = " ";}
12. echo "<option value=\"$w$d\" $selected>$w$d</option><br>";
13. }
14. while($d < 32);
15.
16. ?>
17. </select>
конечно, эту проблему я решил не самым лучшим способом, но решил. С днями легче, т.к. там тока последовательность цифр, а с названиями месяцев -посложнее.
На одном из форумов посоветовали следующее:
"создай ассоциативный массив где индекс порядковый номер месяца а валуем будет название, для формирования опшинов селекта форечиш этот массив, попутно проверяя соответствие ключа из массива с сохраненным в базе порядковым номером месяца, есть соответствие - приписываешь селектед в опшин."
Но у меня в БД, у месяца нет порядкового номера, т.к. он находится не в отдельной таблице. а в общей таблице анкеты пользователя. И поэтому не знаю как это осуществить, но знаю что нужно через массив и foreach. Но как именно я не понял.
Может кто нибудь пример показать?
Спасибо за помощь
Есть форма для редакт. резюме человека. Исходные данные для изменения вытаскиваются из БД мускул вставляются в текстовые поля как value по умолчанию.
Но так же есть выпадающий список (меню) с выбором месяца рождения.
Как сделать. чтобы РНР вытаскивая из БД значение месяца рождения, устанавливал это значение в качестве selected во всем списке месяцев.
Если кому то не понятно то покажу наглядно.
Вот форма добавления анкеты:
HTML:
1. <form action="">
2. Месяц рождения:
3. <select name="month_pr" size="1" id="month_pr">
4. <option value="" selected>- -</option>
5. <option value="Январь">Январь</option>
6. <option value="Февраль">Февраль</option>
7. <option value="Март">Март</option>
8. <option value="Апрель">Апрель</option>
9. <option value="Май">Май</option>
10. <option value="Июнь">Июнь</option>
11. <option value="Июль">Июль</option>
12. <option value="Август">Август</option>
13. <option value="Сентябрь">Сентябрь</option>
14. <option value="Октябрь">Октябрь</option>
15. <option value="Ноябрь">Ноябрь</option>
16. <option value="Декабрь">Декабрь</option>
17. </select>
В данной форме, выбранным значением является пустое поле, чтобы запретить добавление в БД пустых значений.
А мне теперь надо чтобы при открытии страницы редактирования данного резюме, также выводился весь список месяцев, и значением по умолчанию уже был не <option value="" selected>- -</option> , а месяц установленный при создании анкеты.
Надеюсь я ясно изложился.
К примеру, с числом даты рождения я справился вот таким вот способом:
PHP:
1. День
2. <select name="day">
3. <?php
4. $d = 0;
5. if(empty($myrow["имя поля числа в БД"])) { echo "<option value=\"\" selected>- -</option>";}
6.
7. do {
8. $d++;
9. if($d == $myrow["имя поля числа в БД"]) { $selected = "selected";}
10. else { $selected = "";}
11. if($d < 10) {$w = "0";} else {$w = " ";}
12. echo "<option value=\"$w$d\" $selected>$w$d</option><br>";
13. }
14. while($d < 32);
15.
16. ?>
17. </select>
конечно, эту проблему я решил не самым лучшим способом, но решил. С днями легче, т.к. там тока последовательность цифр, а с названиями месяцев -посложнее.
На одном из форумов посоветовали следующее:
"создай ассоциативный массив где индекс порядковый номер месяца а валуем будет название, для формирования опшинов селекта форечиш этот массив, попутно проверяя соответствие ключа из массива с сохраненным в базе порядковым номером месяца, есть соответствие - приписываешь селектед в опшин."
Но у меня в БД, у месяца нет порядкового номера, т.к. он находится не в отдельной таблице. а в общей таблице анкеты пользователя. И поэтому не знаю как это осуществить, но знаю что нужно через массив и foreach. Но как именно я не понял.
Может кто нибудь пример показать?
Спасибо за помощь