Анимация
JavaScript
|
Главная Библионтека Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT"); Изменилась Header("Cache-Control: no-cache, must-revalidate"); для HTTP/1.1 Header("Pragma: no-cache"); для HTTP/1.0 Излишне напоминать, что все заголовки должны быть отправлены до первой команды вывода в сценарии. Примечание При использовании шаблонизатора наподобие того, который был описан в главе 30, это требование является необязательным. В таком случае весь результат работы сценария и шаблона буферизируется и не отправляется в браузер до самого последнего момента. Несколько слов о флажках checkbox Переключатель с независимым выбором (checkbox или более коротко - флажок) имеет одну довольно неприятную особенность, которая иногда может помешать Web-программисту. Вы, наверное, помните, что когда перед отправкой формы пользователь установил его в выбранное состояние, то сценарию в числе других параметров приходит пара имя флажка=значение. В то же время, если флажок не был установлен пользователем, указанная пара не посылается. Часто это бывает не совсем то, что нужно. Мы бы хотели, чтобы в невы-бранном состоянии флажок также присылал данные, но только значение было равно какой-нибудь специальной величине - например, нулю или пустой строке. К нашей радости, добиться этого эффекта в PHP довольно несложно. Достаточно воспользоваться одноименным скрытым полем (hidden) со значением, равным, например, нулю, разместив его перед нужным флажком. Вот пример: 1 Листинг 33.5. Гарантированная установка значений флажков <? if(@$Go) { foreach($Known as $k=>$v) if($v) echo "Вы знаете язык $k!<br>"; else echo "Вы не знаете языка $k. <br>"; ?> <form action=lang.php method=post> Какие языки программирования вы знаете?<br> <input type=hidden name=Known[PHP] value=0> <input type=checkbox name= Known[PHP] value=1>PHP<br> <input type=hidden name=Known[Perl] value=0> <input type=checkbox name= Known[Perl] value=1>PHP<br> <input type=submit name=Go value="Go!"> </form> Теперь в случае, если пользователь не выберет какой-нибудь из флажков, браузер отправит сценарию пару Known[язык]=0, сгенерированную соответствующим скрытым полем, и в массиве $Known создастся соответствующий элемент. Если пользователь выбрал флажок, эта пара также будет послана, но сразу же после нее последует пара кnown[язык]=l, которая "перекроет" предхдущее значение. Не включи мы скрытые поля в форму из листинга 33.5, сценарий печатал бы только сообщения о тех языках, которые "знает пользователь", пропуская языки, ему "неизвестные". В нашем же случае сценарий реагирует и на неустановленные флажки. Примечание Такой способ немного увеличивает объем данных, передаваемых методом POST, за счет тех самых пар, которые генерируются скрытыми полями. Впрочем, в реальной жизни это "увеличение" практически незаметно (особенно для POST-форм). 0 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 185 186 187 188 189 |