YiiFramework не передается ajax

yintar

Новичок
Здравствуйте.
Очень прошу помочь.
Мне необходимо ajax-ом из вида в контроллер передать переменную, чтобы подставить эту переменную в запрос в БД.
Проблема в том, что контроллер не видит пост или гет(пробовал и post и get) запроса и в запрос к БД вместо пост или гет данных подставляется isNull,хотя если смотреть в консоли то ответ с сервера приходит......почему тогда пост данные не подставляются в запрос БД ???.
csrf-token тоже передается.
В чем может быть проблема?
это вьюха(отсюда передаю перемерную city в контроллер)
PHP:
<script>
    $(function () {
        $('.city').on('click', function () {
            var city = $(this).text();
            $.ajax({
                type: 'GET',
                url: '/index.php/user/ajax',
                data: {city: city},
                success: function (data) {
                    console.log(data);
                },
                error: function (data) {
                    alert('Возникла ошибка');
                }
            });
        });
    });
</script>
это контроллер
PHP:
public function actionAjax() {
        $city = Yii::$app->request->get('city');
          $master_to_category = \app\models\MasterToCategory::find()->joinWith('users', 'categories')->where(['category_id' => Yii::$app->request->get('category_id'), 'city' => $city])->all(); //вот здесь и надо в параметр запроса city подставить данные post запроса, но подставляется null
        return $city;
    }
Помогите пожалуйста!
 

yintar

Новичок
это категория из get этой страницы
user/masters?category_id=15&parent_id=1 это url той страницы откуда я отправляю ajax
 
Последнее редактирование:

Semen

Семён
url: '/index.php/user/ajax', - а здесь ничего не передаешь
выведи в контроллере что в этой переменной - return Yii::$app->request->get('category_id');
 

yintar

Новичок
а зачем ? это тут ни причем! проблема в другом, в том что я передаю переменную на actionAjax(), $city = Yii::$app->request->get('city'); но она почему то пустая и в запрос подставляется isNull
$master_to_category = \app\models\MasterToCategory::find()->joinWith('users', 'categories')->where(['category_id' => Yii::$app->request->get('category_id'), 'city' => $city])->all(); //вот здесь и надо в параметр запроса city подставить данные post запроса, но подставляется null
 

Semen

Семён
потому что - type: 'GET'
а это data: {city: city} - POST
посмотри в браузере, что ты отправлешь GETом,
 

yintar

Новичок
я ж писал что пробовал и post и get результат один и тот же
если изменить на:
$city = Yii::$app->request->post('city');
и в скрипте type POST
результат один и тот же
 

Semen

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

yintar

Новичок
Yii::$app->request->get('category_id'); вывел все передается нормально.......
 

yintar

Новичок
$city = Yii::$app->request->post('city'); а это не передается !!!!!!!!!!???????????
 

yintar

Новичок
Вот заголовок из файрбага yii

Request Headers
Name Value
host
'yii2.loc'
connection 'keep-alive'
cache-control 'max-age=0'
upgrade-insecure-requests '1'
user-agent 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
accept 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
accept-encoding 'gzip, deflate, sdch'
accept-language 'ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4'
cookie '_csrf=216a0d50c88c4bfccd408db37163554c4c0c167423405f66242bd53ed8d2ca12a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22nSKPjmXoR9eVBqgaI9dckaN4l_izcEAQ%22%3B%7D; PHPSESSID=7hgr4p8pd3uqpj963vnfnioqb0'
Response Headers
Name Value
Content-type
'text/html; charset=UTF-8'
 

Semen

Семён
$city = Yii::$app->request->post('city'); а это не передается !!!!!!!!!!???????????
я ещё раз напишу, а дальше, если не поймешь, тогда сам.
чтобы проверить, что ты отправляешь на сервер и как, открой инспектор браузера(например firebug) и посмотри что уходит...
а ajax запросе стоит тип GET, а в контроллере почему-то POST?
 

yintar

Новичок
я исправил тип на POST
передается код 200
и вот еще т.е. как я понимаю данные почему-то не отправляются
try {

// Do send the request (this may raise an exception)
xhr.send( options.hasContent && options.data || null );
} catch ( e ) {

// #14683: Only rethrow if this hasn't been notified as an error yet
if ( callback ) {
throw e;
}
}
 
Сверху