Не приходит ajax запрос!

285
15 января 2018, 09:46

В index.php:

<?php
session_start(); // стартуем сессию
// если в сессии нет массива корзины то создаем его 
if(!isset($_SESSION['cart'])){
    $_SESSION['cart'] = array();
}
include_once 'config/config.php'; // Инициализация настроек
include_once 'config/db.php'; // Инициализация БД
include_once 'library/mainFunctions.php'; // Основные функции
// определяем с каким контроллером будем работать
$controllerName = isset($_GET['controller']) ? ucfirst($_GET['controller']) : 'Index';
// определяем с какой функцией будем работать
$actionName = isset($_GET['action']) ? $_GET['action'] : 'index';
// инициализируем переменную шаблонизатора количества элементов в корзине
$smarty->assign('cartCntItems', count($_SESSION['cart']));
loadPage($smarty, $controllerName, $actionName);

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

<?php
/**
 *  cartController.php
 *
 *  Контроллер работы с корзиной (/cart/)
 *
 */
//  подключаем модели 
include_once 'models/CategoriesModel.php';
include_once 'models/ProductsModel.php';
/**
 *  Добавление продукта в корзину 
 *
 *  @param integer id GET параметр - ID добавляемого продукта 
 *  @return json информация об операции (успех, количество элементов в корзине)
 */
function addtocartAction(){
    $itemId = isset($_GET['id']) ? intval($_GET['id']) : null;
    if(!$itemId) return false;
    $resData = array();
    //  если значение не найдено, то добавляем
    if(isset($_SESSIOIN['cart']) && array_search($itemId, $_SESSIOIN['cart']) === false){
        $_SESSIOIN['cart'][] = $itemId;
        $resData['cntItems'] = count($_SESSIOIN['cart']);
        $resData['success'] = 1;
    } else {
        $resData['success'] = 0;
    }
    echo json_encode($resData);
}

В представлении:

<div id="leftColumn">
    <div id="leftMenu">
        <div class="menuCaption">Меню:</div>
        {foreach $rsCategories as $item}
            <a href="/?controller=category&id={$item['id']}">{$item['name']}</a><br />
            {if isset($item['children'])}
                {foreach $item['children'] as $itemChild}
                    --<a href="/?controller=category&id={$itemChild['id']}">{$itemChild['name']}</a><br />
                {/foreach}
            {/if}
        {/foreach}
    </div>
    <div id="menuCaption">Корзина</div>
    <a href="/cart/" title="Перейти в корзину">В корзине</a>
    <span id="cartCntItems">
        {if $cartCntItems > 0}{$cartCntItems}{else}пусто{/if}
    </span>
</div>

В main.js:

/**
 *  Функция добавления товара в корзину 
 *
 *  @param integer itemId ID продукта
 *  @return в случае успеха обновлятся данные корзины на странице
 */
 function addToCart(itemId){
    console.log("js - addToCart()");
    $.ajax({
        type: 'POST',
        async: false,
        url: "/cart/addtocart/" + itemId + '/',
        dataType: 'json',
        success: function(data){
            if(data['success']){
                $('#cartCntItems').html(data['cntItems']);
                $('#addCart_' + itemId).hide();
                $('#removeCart_' + itemId).show();
            }
        }
    });
 }

В .htaccess:

AddDefaultCharset UTF-8
    Options +FollowSymLinks
    Options -Indexes
    DirectoryIndex index.php
    RewriteEngine On
    RewriteBase /
RewriteRule ^([a-z]+)/([a-z]+)/([0-9]+)/$ /?controller=$1&action=$2&id=$3&%{QUERY_STRING} [NS,L]
RewriteRule ^([a-z]+)/([a-z]+)/$ /?controller=$1&action=$2&%{QUERY_STRING} [NS,L]
RewriteRule ^([a-z]+)/([0-9]+)/$ ?controller=$1&id=$2&%{QUERY_STRING} [NS,L]
    RewriteCond $1 !^(index\.php)
    RewriteCond %{REQUEST_URI} !\.(css|js|jpg|gif)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]

Результаты:

1) Как вы видите здесь все нормально!

2) Но, при вызове функции нажатием на "Добавить в корзину" происходит следующее:

Как это исправить чтобы приходил запрос?

READ ALSO
Ошибка: Undefined index

Ошибка: Undefined index

Создал в таблице oc_product столбец sticker_new

402
Call to undefined function pg_connect() ошибка

Call to undefined function pg_connect() ошибка

База данных postgresql установлена на одном сервереPHP установлена на другом сервере

365
Не отправляются данные Ajax

Не отправляются данные Ajax

Отправлялись данные из формы на сервер с помощью php и добавлялись в бд, после того как попытался отправить данные через Ajax, они не приходят...

248