[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод картинки(переменная из РНР)
ant3627
Задача вроде бы простая, но я с JS еще плохо общаюсь.
Из базы данных в цикле выводятся малые фото и размещаются в таблице. Мне не нравится, что при клике, большое фото открывается в новом окне, хочется в новом, но с помощью JS - ну вы меня поняли.

  
<script>
function
okno()
{
msgWindow= open("*","displayWindow",
"width=450,height=450,titlebar=0,alwaysLowered=0,alwaysRaised=0,resizable=1,status=0,toolbar=0,menubar=0,scrollbars=no,dependent=0,hotkeys=0,screenY=200")
}
</script>
<?

while ($ath= mysql_fetch_array($res))
{
$bfoto= $ath['bfoto'];
$mfoto= $ath['mfoto'];
echo '
<tr>
<td width="100" height="100" rowspan="2">
<a href="bfoto/'
.$bfoto.'"onMouseOver="okno()"><img src="mfoto/'.$mfoto.'"> </a></td>
</tr>'
;
}
?>


загрузить конкретную новую страницу html или PHP - это пожалуста (вместо звездочки), а можно ли передать переменную из РНР в функцию на JS? и как вывести фото? - не могу понять из той литературы что есть.
Подскажите, пожалуста.



Спустя 1 час, 8 минут, 50 секунд (26.04.2011 - 19:13) ИНСИ написал(а):
ant3627 правильнее было бы так:
1. Выводим в цикле фотку:
<a href="bfoto/'.$bfoto.'"onMouseOver="okno($id)"><img src="mfoto/'.$mfoto.'"> </a>


2. Вот JS код:
<script language="javascript">
function okno(id) {
document.documentElement.style.overflow = "auto";
document.body.style.marginRight = '0px';

var width="515", height="600";
var left = (screen.width/2) - width/2;
var top = (screen.height/2) - height/2;

var styleStr = 'menubar=no,status=no,location=no,toolbar=no,scrollbars=yes,width='+width+',height='+height+',left='+left+',top='+top+',screenX='+left+',screenY='+top;

var msgWindow = window.open("http://site.ru/bigPhoto?id=" + id,"bigPhoto", styleStr);
msgWindow.document.write(head + body);
}
</script>


3. Сам файл, который открывает большую фотку:
echo $_GET['id'];


То есть ты id фотки, которую надо открыть передаешь в новое окно. А в новом окне, просто делай запрос и выводим большую фотку. Надеюсь смог доступно объяснить :)

Спустя 43 минуты, 16 секунд (26.04.2011 - 19:57) ant3627 написал(а):
тупо скопировал и вставил (название сайта и папки поменял), но не работает, даже "onMouseOver="okno($id)" не открывает и пустого окна.

А можно ли вообще из РНР передать переменную в JS ???
может я (echo $_GET['id']wink.gif не правильно использую - ничего не отображает.

Спустя 16 минут, 42 секунды (26.04.2011 - 20:13) Guest написал(а):
А ненужно ничего тупо копировать и вставлять, нужно попробовать понять что написали.

velbox привёл пример передачи данных из php в javascript
<a href="bfoto/'.$bfoto.'"onMouseOver="okno($id)"><img src="mfoto/'.$mfoto.'"> </a>


переменные $id и тд. как раз из php. оkno($id) - это как раз передача переменной из php в js

Спустя 3 дня, 14 часов, 12 минут (30.04.2011 - 10:25) ant3627 написал(а):
Эх, господа джаваскриптовцы, разочаровали вы меня. Мне нужно было простое решение и быстро, не углубляясь в изучение JS.
Спасибо, конечно, velbox, что попытался, но ...

Все оказалось банально просто.
Пишу, может кому пригодится.

<a href="" onMouseOver=\'window.open("'.$foto.'", "newWin", "width=450,height=450,titlebar=0,alwaysLowered=0,alwaysRaised=0,resizable=0,status=0,toolbar=0,menubar=0,scrollbars=no,dependent=0,hotkeys=0,top=200,left=300")\'><img src="mfoto/'.$mfoto.'" >

Согласен, что не очень красиво, когда JS код повторяется в цикле, но когда надо быстро закрыть тему - то сгодится.
В реале я использовал другую функцию, но как она работает, еще предстоит понять ... когда будет время.

Спустя 34 минуты, 58 секунд (30.04.2011 - 11:00) Гость_liw написал(а):
Разочаровали?

Да дожили, - человек предложил более менее приличную функцию, и не угодил, вот ведь, какая жалость.

А функция к тому же делает тоже самое что и твой код, но хотя бы центрирует это несчастное окно да и не нужно при этом писать километр кода для каждой ссылки.












Спустя 7 минут, 30 секунд (30.04.2011 - 11:08) ant3627 написал(а):
Предложил - это когда поставил и заработало,
а что проку, когда выводится пустое окно ... зато красиво по центру!

Спустя 30 минут, 17 секунд (30.04.2011 - 11:38) Guest написал(а):
А ну попробую щас объяснить.

Тут форум, люди как бы надеются наверное получить какую то отдачу от того что пишут, - т.е.:

Мой вариант.

Со стороны отвечающего:

Вот ответил я, - вижу что человек, пусть задав ещё 200 вопросов, - понял что я ему хотел донести. И всё, - мне приятно, ибо я знаю, что то в чём разобрался сам, просто так не забудешь.

Таким образом я выполнил задачу для себя. Да да именно для себя, а не для того кто спрашивал.
Ведь говоря по правде, никого не волнуют проблемы других.

И тут мне, например пишут что я кого то там разочаровал, - ну что ж - мне плевать на это, т.к. у меня не стояла задача что бы спрашивающий остался мной доволен (я же не сто рублей что бы всем нравится).

А вот на то что пролема осталась, - т.е. спрашивающий не понял того что сделал, даже если добился своей цели - мне не плевать, т.к. у меня то стояла другая задача, которую я уже не смогу выполнить, т.к. тут зависит всё не только от одного человека.

Почему меня волнует, понял ли спрашивающий то что я ему написал?
- Ну тут возможны варианты, например: а вдруг мне через месяц/год прийдётся разбираться в том ужасном коде, который написал этот человек.

Не хотите ничего учить, обращайтесь за деньги, - вам помогут.

----------------------------------------

Со стороны спрашивающего:

ну это ты и сам знаешь)


----------------------------------------

А так в общем то без разницы) все остались при своих мнениях.



Спустя 1 час, 24 минуты, 40 секунд (30.04.2011 - 13:03) ant3627 написал(а):
Спрашивающий всегда найдет решение своей проблемы - программист - синоним слова - "не тупой" вопрос во времени на решение.
Когда спешишь закончить работу и спишь по 4 часа, то голова отказывается вникать во второстепенные задачи, как-то - сделать красивше. А JS я пока по другому не воспринимаю. Может, когда изучу его, поменяю и мнение. tongue.gif

Спустя 4 часа, 35 минут, 16 секунд (30.04.2011 - 17:38) ИНСИ написал(а):
ant3627 я дал вполне рабочий вариант. И даже объяснил. Но вы решили не копаться, потому что лень разбираться, но уверен потратили куда больше времени на поиск решения вашей проблемы.

Однако я уже дал вам решение вашей задачи.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.