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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Вызов функции по ссылке
 
 автор: Dimrix   (15.04.2005 в 17:32)   письмо автору
 
 

Добрый день.
Подскажите кто знает, как организовать вызов определённой функции по нажитию юЗверем ссылки?

   
 
 автор: Loki   (15.04.2005 в 18:01)   письмо автору
 
   для: Dimrix   (15.04.2005 в 17:32)
 

Варианты:
1. вызвать файл с этой функцией.
2. сделать вызов на текущий файл с параметром. А в файле условный вызов функции, если присутствует этот параметр.

   
 
 автор: Dimrix   (15.04.2005 в 19:16)   письмо автору
 
   для: Loki   (15.04.2005 в 18:01)
 

1) Вызывать файл с функцией не подходит, так как потом обратно вызывать исходный файл, а там открытие сиссии происходит, а что выдаёт Апач при повторном открытии этого файла...
2) Я малость не понял, что Вы этим хотели сказать... :-) наверное вечер, пятница, ДР сотрудника... разьясните плиз ;-)

   
 
 автор: cheops   (15.04.2005 в 22:23)   письмо автору
 
   для: Dimrix   (15.04.2005 в 19:16)
 

Пусть имеется файл index.php
<a href=index.php?func=echo></a><br>
<?php
 
if($_GET['func'] == 'echo')
 {
    echo 
"Вы перешли по ссылке";
 }
 else
 {
    echo 
"Пожалуйста, перейдите по ссылке";
 }
?>

Теперь если мы перейдём по ссылке index.php?func=echo, то скрипту index.php будет передан параметр func, со значением echo, что приводит к смене надписи. Размещая в блоках оператора if функции вы добъётесь нужного вам эффекта.

   
 
 автор: Dimrix   (16.04.2005 в 19:25)   письмо автору
 
   для: cheops   (15.04.2005 в 22:23)
 

Спасибо, очень помогло, но ответ повлёк за собой ещё вопрос: как обновить страницу причём интересны 2 варианта(хотя не исключено, что для обоих будет один и тот же метод обновления):
1) index.php ->index.php
2) index.php ->other.php
И ещё, вопросец, как приведенный Вами вариант переделать, что бы он добавлял тот текст, который заключен между <a> </a> в <input> ???

   
 
 автор: cheops   (16.04.2005 в 23:07)   письмо автору
 
   для: Dimrix   (16.04.2005 в 19:25)
 

Обновить страницу можно при помощи конструкции
<?php
    
echo "<HTML><HEAD>
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
            </HEAD></HTML>"
;
?>

Причём помещать её можно в самых разных частях страницы, браузеры реагируют на неё без вопросов. В параметре CONTENT два значения 0 - задержка в секундах, через через которое необходимо перегрузить страницу. index.php - имя страницы на которую следует перейти. Т.е. если вы укажете
<?php
    
echo "<HTML><HEAD>
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL=other.php'>
            </HEAD></HTML>"
;
?>

то попадёте на страницу other.php.

PS Если честно вопросец с <input> не очень понял... ведь название между <a> </a> всегда постоянно и его можно просто поместить в поле <input> присвоив значение атрибуту value.
<a href=...>А вот это очень интересная ссылка</a>
<input type=text name=name value='А вот это очень интересная ссылка'>

или имеется ввиду что-то другое?

   
 
 автор: Dimrix   (18.04.2005 в 09:14)   письмо автору
 
   для: cheops   (16.04.2005 в 23:07)
 

По поводу <a></a>. Я плохо обьяснил свой вопрос:
имеем три фрейма(чат, список пользователей и строка ввода). Так вот как я нажимаю на юзере в списке, а оно автоматом добавляет его в строку ввода в начало строки с опредеделёнными символами. Вот и вопрос, как такое сделать? Думал сперва через глобальную переменную, но обновлять нужно строку ввода. Может есть по проще вариант?

   
 
 автор: cheops   (18.04.2005 в 12:31)   письмо автору
 
   для: Dimrix   (18.04.2005 в 09:14)
 

Обычно инициируют сессию, в которую засовывают имя пользователя и его личные данные и берут всю информацию для подстановки от туда. Для этого так же подходят cookie.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=298
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=773

   
 
 автор: Dimrix   (19.04.2005 в 09:16)   письмо автору
 
   для: cheops   (18.04.2005 в 12:31)
 

Я тоже так думал, но... ведь как узнать что эта переменная в сесси уже есть? Если обнавлять страницу каждые 15 сек, то проще ручками юзеру набрать, если по нажатию на ссылку(кнопку) можно с инициировать обновление экрана в соседнем фрейме, то как это сделать(а то как обновить себя страничке я ответ видел, но как обновить в коде одной страницы другую страницу так и не увидел ответа :-( ). Плиз, подскажите ;-)

   
 
 автор: cheops   (19.04.2005 в 11:52)   письмо автору
 
   для: Dimrix   (19.04.2005 в 09:16)
 

> но как обновить в коде одной
>страницы другую страницу так и не увидел ответа :-( ).
Нужен переход на другу страницу или выхотите из одного окна перегрузить другое?

   
 
 автор: Dimrix   (19.04.2005 в 15:24)   письмо автору
 
   для: cheops   (19.04.2005 в 11:52)
 

Как раз из одного окна(точнее сказать фрейма) обновить другое. Под обновлением понимаю загрузить страничку наново что бы она выполнила все функции в ПШП, которые должна. И ещё маленькое усложнение: как после обнавления прокрутить автоматически страницу(отобразить нижнюю часть страницы - аналогия чата: когда приходят новые сообщения, то система автоматически прокручивает текст вверх, что бы отобразить пришедший)

   
 
 автор: glsv (Дизайнер)   (20.04.2005 в 04:44)   письмо автору
 
   для: Dimrix   (19.04.2005 в 15:24)
 

Для того, чтобы обновить другой фрейм ссылка должна иметь вид:

<a href="страница.php" target="имя_фрейма">Обновить другой фрейм</a>

Имя фрейма определяется при описании фреймов (параметр name)

<frameset rows="50%,50%" frameborder="1" border="0" framespacing="0"> 
  <frame src="mainframe.htm" name="topframe" scrolling="NO" noresize > 
  <frame src="bottomframe.php" name="bottomframe" scrolling="NO" noresize> 
</frameset>

При переходе по подобной ссылке новая страница будет открыта внутри фрейма, с указанным именем.

>Как после обнавления прокрутить автоматически страницу
Попробуйте использовать следующую конструкцию в теге <body>

<body onLoad="scroll(0,500000)">

   
 
 автор: Dimrix   (20.04.2005 в 09:33)   письмо автору
 
   для: glsv (Дизайнер)   (20.04.2005 в 04:44)
 

За скролинг большое спасибо. Но ответы рождают или повторные вопросы или уточнения.
1) Как определить значения на момент перед обновлением scroll(х,у) "х" и "у" а также определить максимальное значения "х_макс" и "у_макс" на отображаемой странице (хочу сделать умный апдейт страницы: если станица прокручена до упора - то прокрутить при обновлении в самый низ, если нет, то оставить на прежнем месте)
2) О target я слышал и пользуюсь, но тэг <a> ... </a> не подходит по тому, что он автоматом не выполняется. Если подскажите как его сделать автовыполняемым(не по нажатию, а по времени), то он как раз то, что мне нужно!

   
 
 автор: Dimrix   (18.04.2005 в 09:31)   письмо автору
 
   для: cheops   (16.04.2005 в 23:07)
 

И ещё вопрос: я реализовал то, что Вы мне подсказали - огромное спасибо, но как после рефреша прокрутить автоматом скролинг вниз. Новые строки добавлены, но скролинг при рефреше прокручивается вверх и тексту внизу не видно - не удобно, как седлать удобно? ;-)

   
 
 автор: Loki   (18.04.2005 в 09:55)   письмо автору
 
   для: Dimrix   (18.04.2005 в 09:31)
 

Я бы ставил метку в конце стриницы и ссылался на нее стандартными средствами хтмл.

   
 
 автор: Dimrix   (18.04.2005 в 12:13)   письмо автору
 
   для: Loki   (18.04.2005 в 09:55)
 

Мда. Как говорится гениально и просто... Но при написании:

echo "<HTML><HEAD> ";
echo "           <META HTTP-EQUIV='Refresh' CONTENT='30; URL=chat.php#end'> ";
echo "           </HEAD></HTML>"; 
...
//Заполнение чата
...
echo "<A name=end></A>";

То такой код работает 1 раз :-( и более того - не обнавляет данные., а просто переходи в указанную часть документа.

   
 
 автор: Loki   (18.04.2005 в 13:29)   письмо автору
 
   для: Dimrix   (18.04.2005 в 12:13)
 

Вот в таком виде у меня работает:

<?
echo "<HTML><HEAD> "
echo 
"<META HTTP-EQUIV='Refresh' CONTENT='10; URL=chat.php#end'> "
echo 
"</HEAD>"
echo 
"<br>...тут много раз повторяется перевод строки...<br>Последняя строка";
echo 
"<A name=end></A></HTML>"
?>

Про обновление содержания сказать ничего не могу, так как не знаю как оно формируется.
Блин... дизайн форума корежится...

   
 
 автор: Dimrix   (18.04.2005 в 17:03)   письмо автору
4.1 Кб
 
   для: Loki   (18.04.2005 в 13:29)
 

Вроде бы всё сделал как было сказано, но... вообщем прикрепляю файл, может не вижу ошибку. Хотя вроде бы всё как сказано - обновление 1 раз и всё. Вернее не обновление, а переход на якорь без обновления.

   
 
 автор: Loki   (19.04.2005 в 08:58)   письмо автору
 
   для: Dimrix   (18.04.2005 в 17:03)
 

Похоже, я принял желаемое за действительное: проверил дома, действительно переходит только один раз. Попробовал через яваскрипт - тот же эффект. Придется ждать советов "старших товарищей":)

   
 
 автор: Dimrix   (18.04.2005 в 09:40)   письмо автору
 
   для: cheops   (16.04.2005 в 23:07)
 

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

   
 
 автор: Loki   (18.04.2005 в 13:35)   письмо автору
 
   для: Dimrix   (18.04.2005 в 09:40)
 

Тут я до конца не уверен, но предполагаю что вы потеряли имя фрейма (target=name) в ссылке.

   
 
 автор: Dimrix   (18.04.2005 в 17:28)   письмо автору
 
   для: Loki   (18.04.2005 в 13:35)
 

Ну а куда вставлять таргет:

echo "<html> <head> ";
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=chat.php#end'> ";
echo "</head></head>"; 
?
Насколько я понимаю, некуда, если ссылку, то понятно, тогда вопрос, как активировать ссылку без вмешательства юЗверя, т.е. автоматом перейти по ссылке?

   
Rambler's Top100
вверх

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