sergeyyarkov, соответственно пишите в базу на каждый запрос к серверу. Но это глупо по той причине что человек 30 раз обновит страницу и запишется 30 посещений. Если вам надо отслеживать посещения сайта то отслеживайте хотя бы все новые сессии.
BuBux, Во первых - эта функция ($.getJSON) выполняет get запрос и ей пофиг какая у вас там архитектура открываете вкладку network в консоли браузера и смотрите куда летит запрос , вообще советую использовать $.ajax вместо $.getJSON и заодно почитать как минимум её параметры.
Во вторых функция $.each(res, function (index, item) перебирает массив (res) а запрос вам возвращает data банально некорректное имя переменной. Плюс убедитесь что сервер вам возвращает массив а не объект.
И третье , на сервере убедитесь что php вызывает вашу функцию actionAjax. Это станет понятно по сообщению во вкладке network.
И походу вам нужнен не ответ на вопрос а решение задачи , и тут вам не форум а программист нужен : -)
BuBux, Можно, но я бы рекомендовал что бы библиотеки были локально, так как уже были прецеденты когда великий русский фаервол заблочил гугл ) И все кто пользовался cdn схватились за головы )
BuBux, У вас jquery либо поздно подключен либо не подключен совсем. В футере подключайте библиотеки последовательно сперва jquery потом все для чего он нужен а в конце свои скрипты.
А откуда вы берете массив индексов? Сами придумываете ? Попробуйте объект вместо массива. На первый взгляд это решит вашу проблему , но лишит вас особенностей массива . Опишите более точно область применения. Ну или используйте костыль , считая сколько элементов вы удалили и минусуя это значение от ключа