Решили вопрос? мне кажется у вас в структуре jq кода нарушена последовательность. Я несколько уже подзабыл все нюансы, но
("#ratingDisLike").on('submit', function(e) {
и
$("#ratingsDislike").submit();
это разве не одно и то же?
а у вас одно в другом...
вынесите сами функции выше обработчиков событий - так будет проще понять где что не так...
п.с. вообще задача like/dislike проще несколько должна решаться) но это уже к делу не относится
UPDATE.
Фух... ну что сказать, чтобы не обидеть... надеюсь либо Вы учитесь, либо чей-то код разгребаете... потому что пусть я-не-гуру-но-что-то-умею пришлось повозиться. Как я и предполагал - код jquery неверный от и до.
Я искренне не смотрел Ваши скриншоты, что и куда отправляется и в отличии от многих никогда никого не критикую, ибо сам могу легко ошибаться. Плюс я не сторонник теорий и прочей правильности - главное "штоб работало". Поэтому еще раз - могу быть в корне не прав, но оно работает. Итак, к делу.
1) Код в форме
<form action="" method="post" id="ratingsLike" onSubmit="ratingLike(1,2,3);return false;">
я не уверен onSubmit или onsubmit (мне vscode показывает, что onsubmit корректнее). Далее прописываете функцию и параметры. Добавляете return false. Это вроде как preventDefault срабатывает.
Итого - форма.
<form id="ratingsLike" onsubmit="ratingLike(1,2,3);return false;">
<button id="btnLike"><i id="thumbs-up" class="far fa-thumbs-up"></i></button>
</form>
2) Здесь я не уверен почему так (у меня проект на laravel и blade шаблонах), но onsubmit срабатывает корректно (без перезагрузки) когда функция находится вне document.ready.
Скрипт.
<script type="text/javascript">
function ratingLike(id,type,target){
console.log('внутри функции ratingLike' ,id,type,target)
$.ajax({
method: "POST",
url: "/like-dislike", //здесь адрес к обработчику. в вопросе вы написали rating.php а в jquery отправляли на revealator.php/like_dislike.php - это вообще винегрет по-моему(
data: { id: id, type:type } // можно еще dataType добавить в зависимости от ответа.
})
.done(function( data ) {
$('#'+target).html(data.msg) //вывод - мне приходит json поэтому через дату.
});
}
$(document).ready(function() {
$('#btnLike').on('click',function(event){ //клик по кнопке. я убрал type=submit. Можно оставить и тогда этот блок вообще не нужен. Но так больше управляемости.
event.preventDefault()
$('#ratingsLike').submit()
})
});
</script>
в общем не хочу конечно показаться грубым, но проще все или почти все удалить и заново выстроить цепочку. Очень все перемешано и замешано, только чтобы like/dislike сделать.
Но если копаться дальше - ориентируйтесь на то, что я написал по поводу jq. Надеюсь не обидел