Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Форма для редактирования даты. Элемент SELECT.

Сообщения:  [1-3] 

 
 автор: Hemp   (28.04.2011 в 10:00)   письмо автору
 
   для: cheops   (28.04.2011 в 09:18)
 

Спасибо cheops!!!
Всё получилось!
<SELECT NAME="year">
<?php
for($i=1960;$i<=date("Y");$i++){
    if(
$i == $date_array[0]){echo '<OPTION VALUE="'.$i.'" selected>'.$i;}else
        {echo 
'<OPTION VALUE="'.$i.'" >'.$i;}

}
?>
</SELECT>

  Ответить  
 
 автор: cheops   (28.04.2011 в 09:18)   письмо автору
 
   для: Hemp   (28.04.2011 в 08:57)
 

Хм... лучше вместо проверки $j==0 подставить проверку вида $i == $date_array[0], а вместо атрибута cheked, использовать атрибут selected (тогда будет выбираться нужная дата).

  Ответить  
 
 автор: Hemp   (28.04.2011 в 08:57)   письмо автору
 
 

Есть форма для ввода, которая позволяет в том числе, вводить данные о необходимой дате при помощи элемента <SELECT>. Затем данные из формы, передаются методом POST обработчику на PHP, который проверяет корректность данных и заносит их в БД. Всё работает хорошо.

<form>
....................
...................

<td>Дата введения:<br>в формате (ГГГГ-ММ-ДД)
<FIELDSET><LEGEND>Год</LEGEND>
<SELECT NAME="year">
<?php
$j
=0;
for(
$i=1960;$i<=date("Y");$i++){
    if(
$j==0){echo '<OPTION VALUE="'.$i.'" checked>'.$i;$j=1;}else
        {echo 
'<OPTION VALUE="'.$i.'" >'.$i;}

}
?>
</SELECT>
</FIELDSET>
<FIELDSET><LEGEND>Месяц</LEGEND>
<SELECT NAME="month">
<?php
$j
=0;
for(
$i=01;$i<=12;$i++){
        if(
$j==0){echo '<OPTION VALUE="'.$i.'" checked>'.$i;$j=1;}else
        {echo 
'<OPTION VALUE="'.$i.'" >'.$i;}

}
?>
</SELECT>
</FIELDSET></div><div>
<FIELDSET><LEGEND>День</LEGEND>
<SELECT NAME="day">
<?php
$j
=0;
for(
$i=01;$i<=31;$i++){
        if(
$j==0){echo '<OPTION VALUE="'.$i.'" checked>'.$i;$j=1;}else
        {echo 
'<OPTION VALUE="'.$i.'" >'.$i;}

}
?>
</SELECT>
</FIELDSET>
</td>
..............
.............
</form>



Далее, возникла необходимость, иногда вносить изменения в БД, т.е. редактировать записи в БД. За основу, были взяты эта же форма и модернизированный обработчик. Я, хочу добиться. чтобы при редактировании записи из БД, в форму подставлялись текущие значения, этой записи.
С элементами <INPUT> и <TEXTAREA> проблем не возникло. Проблема с выбором даты. По умолчанию, стоит начальная дата 1960-01-01, а, например редактируемая запись имеет значение даты 1996-02-12. Хотелось, бы добиться. чтоб в редактируемой форме, указывалась дата 1996-02-12.
$date_array=explode('-',$id_row['date_begin']);

Где, $id_row['date_begin'], дата, взятая из БД в формате ГГГГ-MM-ДД, а $date_array - массив, в котором, под индексом 0, храниться год, 1 - месяц, 2 - день. Вот, эти значения, и нужно использовать для подстановки в форму.

  Ответить  

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования