Unexpected end of input на чистом js. Все скобки проверил. Не использую JSON
Не могу понять что пропустил. Хочу выполнить ajax, передавая в функцию 3 параметра из файла php при нажатии на ссылку. До запуска функции консоль выводит Uncaught SyntaxError: Unexpected end of input. Так как использую MVC, ошибку выбивает на первой строке html файла.
Код JavaScript:
var dns = 'http://fmbteka.local/';
function paginationAjax(page, media, searchText) {
var URI = 'search/'+media+'/'+page+'/';
var data = "search_text=" + searchText;
var ajax = new XMLHttpRequest();
ajax.open("POST", dns+URI, false);
ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
ajax.send(data);
var products = document.querySelector(".products");
products.innerHTML = ajax.response;
}
PHP:
if(isset($searchText)) {
$page1right = "<a onclick='paginationAjax(".($page + 1).", '".$media."', '".$searchText."')'> ".($page + 1)." </a>";
}
Все переменные в php файле имеют тип строки (string)
Переменная $page1right передается в контроллер, который вставляет ее в представление.
Смотрел подобные вопросы на форумах, проблема у всех одинаковая - не закрыли скобку в jquery, или неправильно парсят JSON. Я не использую JSON и jquery, поэтому мне не понятно в чем допущена ошибка.
Ответы (3 шт):
Попробуйте заменить кавычки в onclick
if(isset($searchText)) {
$page1right = "<a onclick=\"paginationAjax(".($page + 1).", '".$media."', '".$searchText."')\"> ".($page + 1)." </a>";
}
Спасибо, первый ответ мне помог. Была проблема в кавычках
Вот что получилось:
if(isset($searchText)) {
$pathStr = "'".$path."'";
$searchTextStr = "'".$searchText."'";
$page1right = '<a onclick="paginationAjax('.$pathStr.', '.$searchTextStr.')" style="cursor: pointer"> '.($page + 1).' </a>';
}