Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 34

Упрощение кода

03.09.2014, 22:46. Показов 767. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. товарищи, имеется написанный мною на коленках код год назад требует переработки. Подскажите, что, где и чем заменить. Может у вас есть какая-то более продвинутая идея, которой Вы можете поделиться.
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html" charset="UTF-8">
<SCRIPT LANGUAGE="javascript">
var d = 0;
var m = 1;
var dat = new Date();
 
function rasp2guard() {
   m = document.getElementsByName('month')[0].value;
 
 
   if (d == 32) {
    mm = parseInt(m);
    d = "01";
    mm++;
        if (mm < 10) {
            m = "0"+mm.toString();
        } else {
            m = mm.toString();
        }
   };
 
   document.location="rasp.php?day="+d+"&month="+m;
}
 
function today() {
   d = dat.getDate(); 
   if (d < 10) { d = '0'+d; }
   rasp2guard();
}
 
function tomorrow() {
   d = dat.getDate()+1; 
   if (d < 10) { d = '0'+d; }
   rasp2guard();
}
</SCRIPT>
 
 
 
<!-- ============================================================================== -->
<!-- ============================================================================== -->
<!-- ============================================================================== -->
 
 
 
<p class="fr_header"><?PHP echo russian_date3(); ?></p>
 
<form name="rasp" method="post" action="rasp.php"> 
<center>
 
<br>
<!-- [ НАЧАЛО дней ] --> 
<table cellpadding="0" cellspacing="0">
    <tr>
        <td colspan="7">
            <select class="calsel" name="month" style="width: 100%;">
 <option value="
<?PHP  echo date("m"); ?>">
<?PHP function russian_date(){
$date=explode(".", date("d.m.Y"));
switch ($date[1]){
case 1: $m='Январь'; break;
case 2: $m='Февраль'; break;
case 3: $m='Март'; break;
case 4: $m='Апрель'; break;
case 5: $m='Май'; break;
case 6: $m='Июнь'; break;
case 7: $m='Июль'; break;
case 8: $m='Август'; break;
case 9: $m='Сентябрь'; break;
case 10: $m='Октябрь'; break;
case 11: $m='Ноябрь'; break;
case 12: $m='Декабрь'; break;
}
echo "Выбран месяц - ";
echo  date("$m");
}
russian_date(); 
 
function tommorow_date() {
date('d', strtotime('tomorrow')); 
echo date('d', strtotime('tomorrow'));
}
?>
</option>
 <option value="01">(01) Январь</option>
 <option value="02">(02) Февраль</option>
 <option value="03">(03) Март</option>
 <option value="04">(04) Апрель</option>
 <option value="05">(05) Май</option>
 <option value="06">(06) Июнь</option>
 <option value="07">(07) Июль</option>
 <option value="08">(08) Август</option>
 <option value="09">(09) Сентябрь</option>
 <option value="10">(10) Октябрь</option>
 <option value="11">(11) Ноябрь</option>
 <option value="12">(12) Декабрь</option>
</select>
        </td>
    </tr>
    <tr>
        <td colspan="3">
            <input class="calsel" style="width: 100%;" name=bTod style="width: 117px;  height: 30px; margin: 2px;" type=button value="На сегодня" formtarget="_blank" OnClick='today();'>
        </td>
        <td align="center" style="background: #d5d5d5;"></td>
        <td colspan="3">
            <input class="calsel" style="width: 100%;" name=bTom style="width: 117px;  height: 30px; margin: 2px;" type=button value="На завтра" formtarget="_blank" OnClick='tomorrow();'>
        </td>
    </tr>
    <tr>
        <td><input name=b01 type=button value="01" class="calsel" target="_blank" OnClick=' rasp2guard();'></td>
        <td><input name=b02 type=button value="02" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b03 type=button value="03" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b04 type=button value="04" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b05 type=button value="05" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b06 type=button value="06" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b07 type=button value="07" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
    </tr>
    <tr>
        <td><input name=b08 type=button value="08" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b09 type=button value="09" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b10 type=button value="10" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b11 type=button value="11" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b12 type=button value="12" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b13 type=button value="13" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b14 type=button value="14" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
    </tr>
    <tr>
        <td><input name=b15 type=button value="15" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b16 type=button value="16" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b17 type=button value="17" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b18 type=button value="18" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b19 type=button value="19" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b20 type=button value="20" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b21 type=button value="21" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
    </tr>
    <tr>
        <td><input name=b22 type=button value="22" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b23 type=button value="23" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b24 type=button value="24" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b25 type=button value="25" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b26 type=button value="26" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b27 type=button value="27" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b28 type=button value="28" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
    </tr>
    <tr>
        <td><input name=b29 type=button value="29" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b30 type=button value="30" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td><input name=b31 type=button value="31" class="calsel" target="_blank" OnClick='d = document.getElementsByName(this.name)[0].value; rasp2guard();'></td>
        <td colspan="4" align="center" style="background: #d5d5d5; color: #6c6c6c; font-family: Arial;"><a href="/" style="font-weight: normal; text-shadow: none; color: #6c6c6c;">UP Team</a></td>
    </tr>
</table>
 
<!-- [ КОНЕЦ дней ] -->
</center>
</form>
 
 
<!-- [Не удалять! Скрипт русифицирования месяцев] -->
<?PHP function russian_date3(){
           $date=explode(".", date("d.m.Y"));
              switch ($date[1]){
              case 1:  $ms='Января'; break;
              case 2:  $ms='Февраля'; break;
              case 3:  $ms='Марта'; break;
              case 4:  $ms='Апреля'; break;
              case 5:  $ms='Мая'; break;
              case 6:  $ms='Июня'; break;
              case 7:  $ms='Июля'; break;
              case 8:  $ms='Августа'; break;
              case 9:  $ms='Сентября'; break;
              case 10: $ms='Октября'; break;
              case 11: $ms='Ноября'; break;
              case 12: $ms='Декабря'; break;
           }
           echo  date("j $ms Y");
           }
?>
<!-- ============================================ -->
 
</BODY>
</HTML>
Так как мои познания в PHP далеки от совершенства, код выглядит УЖАСНО.
Как видно, выбираем месяц, день и запускается скрипт на JS, который обрабатывает данные и передает ссылкой GET данные в rasp.php.
Вопрос:
1) Каким образом можно избавиться от JS сохранив функционал?
2) Чем заменить 31 кнопку на календарь, который может поддаться редактированию CSS?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.09.2014, 22:46
Ответы с готовыми решениями:

Упрощение запуска
Можно ли сделать так чтобы при запуске Denwera сразу же в браузере открывался нужный файл(чтобы не писать localhost/нужный файл)?

упрощение кода
нужно упростить код : public class VectorTricks { public static void main(String args) { Vector v1 = new...

Упрощение кода
$search_mask = search_mask($mask, DEL_SEC, $prev_key); /* Поиск подстроки в строке 0 (Верхние заголовки) разделённой разделителем */ if...

11
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
04.09.2014, 12:30
разделите PHP, HTML и JS, что все это было в отдельных файлах
1. подробнее, в каком смысле сохранить функционал
2. в каком смысле чем? виджетом каким-нибудь
0
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 34
04.09.2014, 15:02  [ТС]
Поясню: в любом случае должны быть переданы переменные "day" и "month" в файл "rasp.php". Скрипт построен так, что считывает выбранную позицию из выпадающего списка, затем узнает, какой кнопкой был вызван скрипт JS. Далее JS проверяет некоторые данные и формирует ссылку типа GET. То же самое может сделать PHP, НО... 31 кнопка дней статические и скрипт тупо отправляет первый день всегда (они не перемещаются в зависимости от дня недели, не выделишь цветом выходные дни).

Календарь чем заменять - спрашиваю у вас.
0
 Аватар для V@D!k
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
04.09.2014, 17:03
обычный html-кий select
0
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 34
04.09.2014, 17:06  [ТС]
V@D!k, это приведет к увеличению количества кликов мышью и выглядит уж точно не как календарь
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
04.09.2014, 17:19
Цитата Сообщение от Soroka7 Посмотреть сообщение
2) Чем заменить 31 кнопку на календарь, который может поддаться редактированию CSS?
А что кнопка не поддается?
0
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 34
04.09.2014, 17:23  [ТС]
Игорь[Igor], 31 статичная кнопка это круто. Да они поддаются редактированию CSS. Тогда предложи, как заставить эти кнопки менять свое положении в соответствии с днями недели выбранного месяца текущего года?
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
04.09.2014, 17:28
Конструируй календарь с помощью php и в этом конструкторе уже определяй где какая кнопка будет и какой недели соответствовать.
0
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 34
04.09.2014, 17:30  [ТС]
Игорь[Igor], наиболее полезную и качественную документацию (желательно на Русском) можете предоставить?
0
 Аватар для V@D!k
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
04.09.2014, 17:52
тьфу ты попутал , список чекбоксов на каждый день как вариант, чекбоксы можно поместить так как вам надо, и отобразить в стиле календаря
0
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 34
04.09.2014, 17:54  [ТС]
V@D!k, а практически от кнопок чем нибудь отличиться? Нужно координально правильное решение
0
 Аватар для V@D!k
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
04.09.2014, 17:57
от кнопок отличается тем, что у вас будет только одна кнопка, которая отправляет все значения скрипту, который их обрабатывает.
p.s. сам бы использовал jquery и не мучался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.09.2014, 17:57
Помогаю со студенческими работами здесь

Упрощение кода
Здравствуйте. Можно ли в данном случае обойтись одним циклом вместо двух? List&lt;double&gt; xValues = new List&lt;double&gt;();...

Упрощение кода
&lt;HTML&gt; &lt;HEAD&gt; &lt;TITLE&gt; Вычисление периметра и площади&lt;/TITLE&gt; &lt;script language=&quot;JavaScript&quot;&gt; function Figure(name, length,...

Упрощение кода
Хочу написать многофункциональную консольную программу. Код получится громоздкий и запутанный. C++ позволяет как-нибудь обозначать...

Упрощение кода
Здравствуйте. Требуется упростить следующий код: int CountP = 110; List&lt;double&gt; lstMin = new List&lt;double&gt; ( ); bool...

Упрощение кода
Имеется несколько функций, где идет проверка заданной строки и потом выдает значение. Но вот в чем проблема, на каждый ComBoBox написана...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru