Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вызов функции по нажатию ссылки (PHP)  (Прочитано 25933 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
kto-to
Гость
« : 22-05-2006 12:52 » 

Пожалуйста, объясните мне штуку такую.

Как можно сделать так, чтобы в php-скрипте по нажатию на ссылку
вызывалась функция, описанная в этом же скрипте. Вроде бы достаточно понятно написала.

Если можно какой-нибудь простенький примерчик.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 22-05-2006 12:56 » 

Цитата
чтобы в php-скрипте по нажатию на ссылку
вызывалась функция, описанная в этом же скрипте
Не корректно, но догадаться можно.

Цепочка: клик -> урл -> php скрипт -> разбор параметров и определение вызываемой ф-ии -> вывод результата в браузер.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
kto-to
Гость
« Ответ #2 : 23-05-2006 04:16 » 

Пример какой-нибудь выложи, пли-и-из.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 23-05-2006 07:14 » 

kto-to, это элементарщина. Почитай какой-нибудь самоучитель.

Код:
<?php
if (isset($_GET[&#39;action&#39;]))
{
  switch (
$_GET[&#39;action&#39;])
  
{
    case &
#39;page1&#39;:
      
func_page1();
      break;
    case &
#39;page2&#39;:
      
func_page2();
      break;
    default:
      echo 
"нет такой страницы";
  }
}
else
{
  
func_default_page();
}
?>

« Последнее редактирование: 16-12-2007 17:39 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
kto-to
Гость
« Ответ #4 : 23-05-2006 10:17 » 

Цитата
kto-to, это элементарщина.
Потому и пишу в раздел для начинающих.

Вот такой вот код у меня.
Код:
<?
include("blocks.php");
$title="Фотографии";


switch($go)
{
default:
main();
break;

case "one":
one();
break;
}

function main()
{
$cont_center="<a href=photo.php?go=one>ссылка</a>";
}


function one()
{
$cont_center="one";
}

include("struct.php");

?>

Переменная $cont_center - это содержимое центральной части WEB-страницы.
При запуске скрипта центральная часть пуста. В чем здесь ошибка?  Здесь была моя ладья...
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 23-05-2006 15:51 » 

Цитата
switch($go)
Забудь и не привыкай к register_globals=on ! Это большая дыра в безопасности и устаревшая возможность. Используй $_GET для данных url и $_POST для данных отосланных формой на странице.

Это ^^^ лирическое отступление.

В этом и может быть ошибка.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
kto-to
Гость
« Ответ #6 : 24-05-2006 06:06 » 

Вот такая вот штука получилась. Работает.

Код:
<?

if (isset($_GET['go']))
{
switch($_GET['go'])
{
default:
main();
break;

case "one":
one();
break;
}
} else main();

function main()
{
include_once("blocks.php");
$title="Фотографии";
$cont_center="<a href=photo.php?go=one>ссылка</a>";
include_once("struct.php");
}

function one()
{
include_once("blocks.php");
$title="Фотографии";
$cont_center="one";
include_once("struct.php");

}

?>

Только меня не совсем устраивает то, что инклуды в каждой функции нужно включать. Хотелось бы один раз и все...
« Последнее редактирование: 16-12-2007 17:39 от Алексей1153++ » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 24-05-2006 06:53 » 

сделай один раз в начале include_once("*****") перед if (isset($_GET['go']))
« Последнее редактирование: 16-12-2007 17:40 от Алексей1153++ » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
fresh-max
Гость
« Ответ #8 : 24-09-2008 12:37 » 

Можно и так:

В начале скрипта объявляем переменную с инклюдом
$inc = include_once("blocks.php");

а в нужной функции объявить переменную $inc глобальной

function main()
{   
global $inc;   
$title="Фотографии";
$cont_center="<a href=photo.php?go=one>ссылка</a>";
}
Этот вариант не запутает вас в дальнейшем.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 24-09-2008 14:40 » 

fresh-max, зачем поднимать тему 2.5 лет давности и писать что-то непонятное? Где у тебя в main() используется $inc? Пиши подробно или удалю твой пост.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #10 : 24-09-2008 16:01 » new

а макс - это не тот суровый админ, которого Вика в своё время с работы "выгнала" ? )
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines