Php код может содержаться в этом же html файле. Все зависит от способа, которым был реализован проект. Имхо, чистый html нынче практически не встретишь.
Возможно, что в ответе приходит не json, на что указывает ошибка, поэтому и попадает в error. Чтобы попало в success, нужно привести datatype в соответствие к ответу от сервера.
Классика.
i = 1
['X', 'H', 'e'] => remove[i] => ['X', 'e'], => i++ => remove[i]???
Удалили элемент и перешли вперед на один шаг, не учитывая что следующий элемент стал как бы текущим.
Итерироваться нужно по копии списка.
Строка удаляется полностью и так. Следующий id присваивается большим, потому что так работает sqlitе по умолчанию, но это поведение можно изменить. Если хотите знать как, то киньте запрос, которым создавали таблицу.