Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика


Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2019, 18:17   #1
begovik
Пользователь
 
Аватар для begovik
 
Регистрация: 08.03.2010
Сообщений: 48
По умолчанию Роутинг. Вызов скрипта без отображения в браузере

Здравствуйте. Я не могу решить задачу и даже приблизительно не представляю как это осуществить. Я пишу магазин, и у меня реализована маршрутизация через index.php, то есть все запросы попадают в index.php, а он уже подгружает нужные страницы. Сам я плохо разбираюсь в PHP и всё писал по урокам.
Теперь мне нужно, чтобы при нажатии "добавить в корзину" на странице отображалось количество добавленных товаров. Это работает через AJAX и отдельный PHP скрипт.
Но, видимо, когда AJAX запрашивает этот скрипт, то PHP ему подсовывает всё тот же index.php.
Подскажите как прописать в маршрутизаторе, чтобы этот скрипт просто отрабатывал и никуда не вёл пользователя.
Вот скрипт маршрутизации:
Код:
$uri = preg_replace("#^(/)#", '', $_SERVER['REQUEST_URI']);
// Массив шаблонов для подключения(подгрузки) нужных шаблонов страниц
$routes = array(
	array('uri' => '#^$|^\?#', 'template' => 'catalog'),
	array('uri' => '#^category/(?P<category_alias>[a-z0-9-]+)/?#', 'template' => 'catalog'),
	array('uri' => '#^page/(?P<page_alias>[a-z0-9-]+)/?#', 'template' => 'page'),
	array('uri' => '#^item/(?P<item_alias>[a-z0-9-]+)/?#', 'template' => 'simple'),
	array('uri' => '#^(category)/?|\?$#', 'template' => 'catalog')
);
// Здесь извлекаем конкретный шаблон
foreach ($routes as $route) {
	if (preg_match($route['uri'], $uri, $match)){
		$template = $route['template'];
		break;
	}
}
if (empty($match)) {
	include_once 'html/404.php';
	exit;
}
extract($match);
include "controller/{$template}_controller.php";
P.S.
И вообще я правильно задал вопрос, или я не понимаю как это работает?
begovik вне форума Ответить с цитированием
Старый 18.04.2019, 18:50   #2
freebsdd
Пользователь
 
Регистрация: 18.04.2019
Сообщений: 26
По умолчанию

Если есть возможность, использовать таки сторонний скрипт и нет такого понятия "я использую скрипт, а PHP мне подсовывает другой" (ошибка значит где то или ссылка неверная на скрипт), сторонний в будущем ещё пригодится для других обработок, а если всё же нужно оставить, то при обращении указывать переменную и проверять её, если она есть, то вернуть массив и return, т.е. не дойди до ВЫВОДА на экран;
freebsdd вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Роутинг на сайте CraZZy RabbIt PHP 1 16.05.2012 01:30
Вызов внешней программы из скрипта Bekass ASP.NET 0 18.12.2011 00:22
вызов скрипта из C# приложения lorpine C# (си шарп) 1 14.03.2011 10:11
MirrorCode вызов функции из другого скрипта Blualeono JavaScript, Ajax 0 17.02.2011 16:44
Удаленный вызов скрипта на веб сервере Garacio_cain Работа с сетью в Delphi 1 09.03.2009 22:39

Реклама для незарегистрированных, регистрация на форуме