Задать вопрос
@dk-web

Как получить параметры при парсинге url (php, mvc, ajax)?

Есть файл app.php
Сокращенная версия...
class App
{
	protected $controller = 'Main_controller';
	protected $method = 'index';
	protected $params = [];
	const SITE_PATH = '/mysiteru/public/';

	public function __construct (){
	$url = $this->parseUrl();
				unset($url[0]);
				unset($url[1]); (убираю контроллер и метод базовый)
		$this->params = $url ? array_values($url) : [];
		// BASE::print_data($this->params);
		call_user_func_array([$this->controller,$this->method],$this->params);
	}
	public function parseUrl (){
		if(isset($_GET['url']))
		{
			return $url=explode('/',filter_var(rtrim($_GET['url'],'/'),FILTER_SANITIZE_URL));
		}
	}
}


Вызываю
new App();

Теперь суть вопроса...
есть ajax запрос к контроллеру mo_search

$('form').on('change','select',function(){
	 $.ajax({
        type: "POST",
        url: "/mysiteru/public/mo_search/chained/5/need/",
        dataType: "json",
        success: function(data, textStatus) {
            console.log(data);
        }
    }); /// КОНЕЦ AJAX
});


В контроллере mo_search

public function chained($params)
  {
    $url=App::parseUrl(); //работает
    $url=App::$this->params; // не работает..
  }


Как получить массив параметров из App? или заново надо парсить? но ведь контроллер и метод определяется верно... как забрать параметры?
  • Вопрос задан
  • 779 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@allexp
web-developer
Добавьте в App метод get_params() например.
Ответ написан
@SergeyZelensky-Rostov
А почему не сделать так: ajax вызывает у вас такой адрес sample/search
запускаем контроллер sample и вызываем метод search, который либо сам обрабатывает POST (что не очень хорошо), либо передает его модели которая проверяет POST данные и делает свои грязные делишки с ними
К примеру у меня проверка POST данных идет по факту обращения к конкретному, вот так например
Requst::checkVarPost('search','string');почему не использовать только POST для таких вещей?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы