Итак,
Теперь код page.php выглядит так:
if(!array_key_exists('category', $_GET)) die();
include('scripts/connect.php');
$query = "SELECT id, subcategory FROM expenses_cat WHERE category='" . $_GET['category'] . "' AND inmenu = 1";
$result = $conn->query($query);
$output = array();
while($row=$result->fetch_assoc()){
$output[$row['id']]=$row['subcategory'];
};
echo json_encode($output);
exit;
Если заменить $_GET['category'] на одно из реальных значений категории, на выходе получаем данные типа
{"9":"\u0420\u0430\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u043a\u043e\u0441\u043c\u0435\u0442\u0438\u043a\u0430","14":"\u041e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438","16":"\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442"}
В самой же форме при выборе категории консоль отображает ошибку на строке
var Subcategories=JSON.parse(HTTPReq.responseText);
VM3836:1 Uncaught SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse (<anonymous>)
at XMLHttpRequest.HTTPReq.onreadystatechange
Может проблема кроется в передаче данных на обработку посредством $_GET?