![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Falcon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 7.11.2006 Репутация: нет Всего: нет |
Добрый день! Я новичок в PHP и мне нужна помощь - надо в функции, зависимо от параметра вывести в браузер определенную картинку. Например в Жава:
function obmen1() { if (x1==1) parent.gmenu.document.img1.src = "ris/ris1.bmp"; } а в PHP такая схема не работает, как мне подобраться к объекту img1 ? |
|||
|
||||
| MoLeX |
|
||||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Добавлено через 1 минуту и 16 секунд то ? -------------------- Amazing |
||||
|
|||||
| HackMan |
|
|||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
а зачем после default ставить break? Это сообщение отредактировал(а) HackMan - 13.10.2008, 12:39 -------------------- Завтра - это самый загруженный день недели ![]() ![]() |
|||
|
||||
| bobik02 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 26.11.2007 Репутация: 2 Всего: 14 |
Встречный вопрос: а зачем его не ставить ? -------------------- Have a nice day |
|||
|
||||
| MoLeX |
|
||||||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
HackMan
Добавлено через 29 секунд по сути это правила хорошего кода. -------------------- Amazing |
||||||
|
|||||||
| Falcon |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 7.11.2006 Репутация: нет Всего: нет |
нет, тут подразумевается, что рисунок не был создан до этого. А у меня картинка уже загружена, мне надо ее менять при наведении курсора на определенную ссылку. Методами ЖаваСкрипта я делал это так: <a href="vakansii.html" target="info" onMouseOver="javascript:obmen1()" onMouseOut="javascript:obmen11()" onClick="javascript:obmen111()"> Тут текс ссылки </a> А до этого писал функцию:
Как мне сделать то же самое но при помощи PHP. Т.е. у меня есть рисунок, при наведении курсора на ссылку этот рисунок менялся на другой Это сообщение отредактировал(а) MoLeX - 13.10.2008, 13:36 |
||||
|
|||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Falcon,
1. используй кнопку код для оформления сообщения. 2. чем тебе не устраивает вариант на яве? РНР - это серверный язык, т.е. нечего не будет происходить моментально а будет перезагрузка всего окна тебе это надо? Добавлено через 26 секунд
тут уже AJAX нужен или его разновидности -------------------- Amazing |
|||
|
||||
| Falcon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 7.11.2006 Репутация: нет Всего: нет |
на яве устраивает, просто хочу научиться в PHP, ну ладно буду делать на яве, а как вмонтировать в документ php кусочек явы?
Но все равно странно что в php нет возможности работать с деревом объектов документа как в яве |
|||
|
||||
| HackMan |
|
|||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
MoLeX, вопросов больше нет
Falcon, главное отличие PHP от JavaScript заключается в том, что первый - серверный язык, то есть скрипты обрабатываются на стороне сервера и сгенерированный код выдаётся браузеру, а второй - выполняется на стороне клиента (в браузере). Следовательно PHP не может управлять браузером и непосредственно что-то там менять после того, как выдал сгенерированную страничку. Как уже упоминали, существует технология AJAX, но она основана на том же JavaScript. Проще говоря - с помощью одного только PHP нельзя никак. Это сообщение отредактировал(а) HackMan - 13.10.2008, 14:37 -------------------- Завтра - это самый загруженный день недели ![]() ![]() |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
есть. используя любой из классов для работы с XML метoдами DOM, можно сформировать нужную структуру, а потом её отдать в виде HTML. однако, в зависимости от хостинга, ограничение на максимальный объем занимаемой памяти может падать до 8-10 Мб. в таком случае, использование DOM-дерева может оказаться просто-таки монструозным вариантом. впрочем, может, я ошибаюсь и причина в другом. но факт остается - в РНР основным приёмом был и есть непосредственный(возможно - с буфферизацией и постобработкой) вывод потока. но никто не мешает тебе использовать какие бы то ни было механизмы для формирования. только их надо поискать. |
|||
|
||||
| Deja_Vu |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 15.6.2007 Где: Казань Репутация: нет Всего: 2 |
Да потому что вы на стороне клиента выполняете действие и php тут не при чем. Это как с помощью швабры переключаьт каналы на телевизоре. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
Deja_Vu, т.е. при помощи механизмов DOM нельзя формировать документ на стороне сервера, чтоб потом отдать его, с ног до головы валидного? только echo из "пещерных времен"?
Добавлено через 1 минуту и 18 секунд впрочем, закралось у меня смутное подозрение, что я слишком много приписал автору без его ведома. речь о JSP или Javascript? Добавлено через 1 минуту и 46 секунд если о javascript, то прошу прощения за то, что вмешался |
|||
|
||||
| Deja_Vu |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 15.6.2007 Где: Казань Репутация: нет Всего: 2 |
О связке PHP+Java не знаю ... а вот как работает Javascript(на стороне клиента в броузере) и PHP знаю. Автор скорее всего 90% имел в виду JScript |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
||||
|
||||
| Falcon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 7.11.2006 Репутация: нет Всего: нет |
Я имел ввиду Javascript. Ну да ладно, уже не важно, пошол другим путем.
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
bobik02,
А потомушта в описании оператора switch в документации его не ставят Да и буквы лишние не нужны... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Если в примере документации будет синтаксическая ошибка, вы ее тоже перенесете к себе в проект? В данном случае, наличие или отсутсвие break - это всего-лишь стиль. И не столько важно "плохой" это или "хороший" стиль кода, намного важнее, что бы это был единственный стиль, которого всегда придерживается разработчик. Собственно по этому вопросу есть отдельная тема: Правила хорошего кода |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Конечно! Откуда я могу знать, что это синтаксическая ошибка, а не новая фича языка? А вот когда мне доступно объяснит php, что я не прав, я пойду на php.net и грязно матерясь напишу комментарий к статье и статью поправят. Есть определенная польза в том, что проект заморожен в развитии на несколько лет Кстати, я нигде не встречал break после default..., плохо искал? Добавлено через 1 минуту и 44 секунды 9 страниц "хорошего тона" ниасилил -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| bobik02 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 26.11.2007 Репутация: 2 Всего: 14 |
Очень часто поднимается подобный вопрос. повтор Совершенного стандарта не существует, стиль кодирования - вопрос личных предпочтений. В конечном, счёте не важно какой стиль выбрать, важно - строго придерживаться выбранного стиля. (Все же не стоит писать неряшливый и малопонятный и называть его выбранным стилем) -------------------- Have a nice day |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
да, тысячу раз да. здесь нет всемогущих, которым дозволено знать всё. если не доверять документации, то чему же тогда? а вот когда уже после осознания ошибки, опознания, что вся существующая документция по этому вопросу ошибочна, дискуссий и разборок, тогда уже следует добиваться исправления самой документации сам тоже, впервые сталкиваюсь с default: break; это же просто не логично и соответственно выглядит некашерно. |
|||
|
||||
| sTa1kEr |
|
||||||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Может от PHP интерпретатора? Syntax error - слышали когда-нибудь о такой новой фичи? Программист - это не тот, кто знает синтаксис языка и может скомпилировать/интерпретировать пару десятков строк кода, а тот кто умеет размышлять и понимает, что он делает и к чему приведет любая строчка написанного им кода. А копи-паст чужого кода (даже примеров из официальной документации) без понимания оного приведет только к плачевным результатам. Ошибаетесь, содержит, особенно на русском языке и в русских зеркалах. Возможно стоило заглянуть на http://php.net/switch ?
И собственно почему это считается плохим стилем: 1.
2. Читабельность кода всегда лучше, когда блок кода явно обозначен. То же относится, на пример, к конструциям вроде:
3. PHP всегда был очень лоялен к подобного рода вольностям, во многих других-же языках отсутствие break даже в кейсе default вызвало бы ошибку компиляции/парсинга. Своей голове надо в первую очередь доверять. Это я сказал к тому, что данная тема имеет заголовок "как добраться до объекта?", а ссылку на тему с заголовком "Правила хорошего кода" я привел выше. Хотя и так уже оффтопика не мало. Это сообщение отредактировал(а) sTa1kEr - 14.10.2008, 21:49 |
||||||||
|
|||||||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
моя голова туда и сюда, в ней мыслей много и синтаксис не часто с ней совпадает я как инженер должен доверять справочникам, и это догма. на том простом основании, что я не могу всего знать, зато должен уметь всё найти. если размышлять головой, то никакого логического обоснования появления break в конце switch - просто нет, а то что в каких-то компиляторах отсутствие его вызывает ошибку, так что с того? может в другим именно его наличие вызывает ошибку? |
|||
|
||||
| ksnk |
|
||||||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Ну да, если не считать, что остальные 4 примера свитча совсем даже без брейка после дефолта...
Угу... Можно еще примеры с форума поцитировать
В той теме - 9 страниц рассуждений о личных предпочтениях... Это там предлагалось учится "хорошему тону"? Ссылка на рекомендации Zend'а или того-же PEAR были бы значительно более точными адресами. Не так ли?
Может из-за точек с запятой после case'ов... Я хотел было позлорадствовать по поводу синтаксических ошибок, но PHP меня почему-то не поддержал Действительно, много флейма, извиняюсь.... С другой стороны как-то зацепила безапеляционная реклама странной с моей точки зрения синтаксической конструкции. : -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||||||
|
|||||||||
| sTa1kEr |
|
||||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
То это, конечно же, полностью объясняет
Не надо придумывать того, что я не говорил. Именно официальную документацию я и имел ввиду, php.net,
Это сообщение отредактировал(а) sTa1kEr - 15.10.2008, 01:48 |
||||||
|
|||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
imho, объясняет... Такую конструкцию, как приводится там я, к примеру, видел первый раз в жизни и сначала принял за синтаксически неправильную. (думал головой?
И что? Пусть даже и в этих официальных документациях часто ли встречались случаи синтаксических ошибок в операторе switch? А в каких-нибудь других базовых конструкциях языка? Я все равно не стану считать русскую документацию официальной, я достаточно страдал от разных локализаций, но неужели такое возможно? после нескольких лет правки этой самой документации.. Обычно, "стиль" кодинга кроме эстетического удовлетворения и визуальной раскраски решает и более практические задачи - удобство cut&paste'a, удобство построчного комментирования ( отладки методом научного тыка), и т.д. Наличие break в дефолтной ветке был бы полезен для возможности скопировать-трансформировать эту ветку в ветку case. для этого достаточно в свеже-с-paste'шенном блоке заменить заголовок. Но именно для switch, imho, это как раз и будет дурной практикой, так как логика дефолтной ветки, нередко сильно отличается от логики case веток... Осмысленность-же обязательного расположения break'а в последней ветке свитча для меня вообще тайна великая есть, особенно для скриптового языка... P.S. Топикстартер, кстати, "пошел другим путем", так что флеймить тут нам почти никто не помешает -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| HackMan |
|
||||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
Хватит спорить. sTa1kEr ещё в самом начале правильно сказал:
PHP устроен так, что в конструкции switch ищет тот case, который подходит и выполняет всё что ниже его до первого break. Иногда даже логичнее эти самые break не ставить. Например, нам надо x умножить на двойку в степени n (где n<=5) Можно сделать так, с break:
А если сделать без break - код получится меньше
Это первый пример, который пришёл в голову. Пусть не самый удачный, но пример А цитату из документации не стоит рассматривать как что-то более, чем напоминание о том, что не стоит забывать ставить break. Это сообщение отредактировал(а) HackMan - 15.10.2008, 10:32 -------------------- Завтра - это самый загруженный день недели ![]() ![]() |
||||
|
|||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
и он меня не убедил что не надо использовать бряк после default -------------------- Amazing |
|||
|
||||
| HackMan |
|
|||
|
Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
MoLeX, а я и не убеждал, что break не надо использовать после default, как и не убеждал в обратном
Практического смысла от break после default маловато (в случае, если у тебя default всегда стоит после всех case), но стиль есть стиль. Это сообщение отредактировал(а) HackMan - 15.10.2008, 10:42 -------------------- Завтра - это самый загруженный день недели ![]() ![]() |
|||
|
||||
| sTa1kEr |
|
||||||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Не часто и не в switch, но иногда встречаются ошибки (в.т.ч. синтаксические) в примерах документации. И как показали ответы из багрепорта, в русских локализациях их не слишком торопятся исправлять. Да суть не в этом, в оригинале так же бывают ошибки (просто их быстро исправляют в отличии от локализованной версии), все-таки док-ию пишут люди, а людям свойственно ошибатся. Собственно это я все к тому, что нужно не только примеры рассматривать, но и само описание конструкций, где кстати ясно объясняется зачем и где можно использовать break + рекомендация использовать всегда.
|
Кто тут говорил про обязательное расположение? А спорить насколько это хороший или плохой стиль можно бесконечно, так же как спорить о том, обрамлять блок кода из одной строчки в фигурные скобки или нет. |
||||||||
|
|||||||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
сколько людей, столько и мнений (с) -------------------- Amazing |
|||
|
||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Согласен, однко если не спорить о принципах, жизнь будет скушнее -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |