Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   тег option <<многоуровневый>> (https://javascript.ru/forum/dom-window/1263-teg-option-mnogourovnevyjj.html)

laimas 18.08.2017 14:18

griga,
у вас кроме json сервер шлет нечто непотребное, отсюда и ошибки. Ну сказано же было об этом, чего топтаться на месте?

Либо на сервере есть некорректное и интерпретатор выводит предупреждение. Или ваши скрипты сохраненный в UTF сохранены с ВОМ, что есть "невидимый вывод" в браузер. Открывайте отладчик, анализируйте.

Для $_GET['category'] в случае числового значения real_escape_string, это роскошь, достаточно привести к integer. И вообще, выбрасывайте оригинальный MySQL, тем более в рамках РНР 7, который его уж точно не поддерживает.

Nexus 18.08.2017 14:19

griga, может так:
<?php
ob_start();
if(!array_key_exists('category', $_GET)) die();

include('scripts/connect.php');

$category=$conn->real_escape_string($_GET['category']);
$query = "SELECT id, subcategory FROM expenses_cat WHERE category='".$category."' AND inmenu = 1";
$result = $conn->query($query);
$output = array();

while($row=$result->fetch_assoc()){
    $output[$row['id']]=$row['subcategory'];
};

ob_end_clean();
echo json_encode($output);
exit;

laimas 18.08.2017 14:28

Nexus,
а если есть вывод в браузер, это поможет?

griga 18.08.2017 14:34

не помогло.
Кодировку проверил - оба файла в UTF-8

Nexus 18.08.2017 14:38

Цитата:

Сообщение от laimas (Сообщение 461992)
Nexus,
а если есть вывод в браузер, это поможет?

Если скрипт обращается напрямую к этому файлу, то поможет, в противном случае не поможет.

laimas 18.08.2017 14:46

Если обращение к этому файлу более ничего не содержащему кроме РНР кода, то буферизация тем более нафиг не нужна. Она вообще не нужна в любом случае, ибо речь идет о передаче одного единственного, что должно быть в выводе, это JSON.

Nexus 18.08.2017 14:55

Цитата:

Сообщение от laimas (Сообщение 461995)
Если обращение к этому файлу более ничего не содержащему кроме РНР кода, то буферизация тем более нафиг не нужна. Она вообще не нужна в любом случае, ибо речь идет о передаче одного единственного, что должно быть в выводе, это JSON.

В коде подключается файл, который коннектится к бд, в том файле присутствует «?>» (т.е. область php-кода закрывается), после этого может стоять пробельный символ.
Буферизация не выведет это символ в браузер.

laimas 18.08.2017 14:56

Цитата:

Сообщение от Nexus
В коде подключается файл, который коннектится к бд, в том файле присутствует «?>» (т.е. область php-кода закрыватся), после этого может стоять пробельный символ.

Что за чушь, если в коде явный выход - exit?

Nexus 18.08.2017 15:15

laimas, смотри пост #42, строка 5. Потом потс #47.

griga 18.08.2017 15:22

Nexus,
перезагрузка OpenServer решила вопрос
Большое спасибо за помощь :thanks:


Часовой пояс GMT +3, время: 21:03.