Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 28.07.2016, 11:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А чего тут догонять, нет в РНР функции json.encode, есть json_encode. Вы что их сами придумываете или же руководствуетесь описанием языка?
Ответить с цитированием
  #12 (permalink)  
Старый 28.07.2016, 11:51
Аспирант
Отправить личное сообщение для Хан Посмотреть профиль Найти все сообщения от Хан
 
Регистрация: 20.07.2016
Сообщений: 45

А, блин, не сразу понял, но дело в том, что я уже исправлял это, ошибка все равно остается, и она в том же файле php, попробуйте скопировать весь мой код и посмотреть ошибку в консоли
Ответить с цитированием
  #13 (permalink)  
Старый 28.07.2016, 12:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<?php
if(isset($_GET['country'])) {
    $city = [
        1 => [1 => "Москва", "Питер"],
             [3 => "Киев", "Одесса"]
    ];
    
    if($c = (int)$_GET['country'] AND $c = $city[$c]) {
        header('Content-type: text/html; charset=utf-8');
        exit(json_encode($c));     
    } else exit(json_encode('Not!'));
}
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Формат JSON</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script type="text/javascript">
        $(function() {
            $("[name='country']").on("change", function() {
                if(this.value) $.get(location, {country: this.value}, function (data) {
                    console.log(typeof data)
                    if(typeof data === 'object') {
                        $("select[name='city']").find('option').slice(1).remove();
                        for (var id in data) $("select[name='city']").append($("<option value='" + id + "'>" + data[id] + "</option>"));
                    } else alert(data)
                }, 'json');
            });
 
        });
    </script>
</head>
<body>
    <label>Страна:</label>
    <select name="country">
        <option value="">Выберите страну</option>
        <option value="1">Россия</option>
        <option value="2">Украина</option>
    </select>
    <br />
    <label>Город:</label>
    <select name="city">
        <option value="">Выберите город</option>
    </select>
</body>
</html>


Сохранить под любым именем, запустить.

PS. Или:

header('Content-type: application/json; charset=utf-8');
и
}, 'json'); - тип ожидаемых данных не указывать, JQ его по заголовку сервера определит.

Последний раз редактировалось laimas, 28.07.2016 в 12:43.
Ответить с цитированием
  #14 (permalink)  
Старый 28.07.2016, 16:29
Аспирант
Отправить личное сообщение для Хан Посмотреть профиль Найти все сообщения от Хан
 
Регистрация: 20.07.2016
Сообщений: 45

Вот что выводит, тут скорее у меня уже в ошибка (файл кодирую, кодирую, перекодиравл уже (utf-8 без BOM))
Изображения:
Тип файла: jpg Безымянны1.jpg (5.8 Кб, 7 просмотров)
Ответить с цитированием
  #15 (permalink)  
Старый 28.07.2016, 16:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Не выполняется серверный код, причем не видно, чтобы с кодировкой было в порядке.
Ответить с цитированием
  #16 (permalink)  
Старый 28.07.2016, 18:27
Аспирант
Отправить личное сообщение для Хан Посмотреть профиль Найти все сообщения от Хан
 
Регистрация: 20.07.2016
Сообщений: 45

Спасибо, тему уже закрыл, правда ничего не получилось..
Ответить с цитированием
  #17 (permalink)  
Старый 29.07.2016, 00:17
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Включи error_reporting(-1); чтобы тебе хотя бы браузер написал, что так делают только оленеводы больные сибирской язвой:

echo json.encode

Это значит ты хочешь соединить константу json и результат функции encode(), потому что в пехепе точка . обозначает символ конкатенации, то есть + для строчных переменных.

Тебе и написали, что функция называется json_encode() и кстати работает она только в юникоде, UTF-8.

ЗЫ Не error.reporting(-1), а error_reporting(-1), а то так и не узнаешь, какой у девки был конец.
Ответить с цитированием
  #18 (permalink)  
Старый 29.07.2016, 00:23
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от Хан
закрыл
В браузере твой пехепе никогда не будет работать. Скачай хотя бы denwer, специально для оленей сделано, запусти и будет тебе пехепе.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача значений нескольких параметров из js в php TomTykver AJAX и COMET 2 13.05.2015 22:19
Senior JS (node.js + mongodb + angular.js) + PHP (Одесса) greebn9k Работа 0 21.04.2015 01:20
Передача данных с js в php juramaj AJAX и COMET 2 11.03.2015 12:42
Получить массив из php d js freelancerphpcss jQuery 3 02.07.2013 15:29
PHP и JS жонглирование данными McLotos Общие вопросы Javascript 5 14.04.2011 16:16