Вывод данных JSON из PHP - PullRequest
       4

Вывод данных JSON из PHP

0 голосов
/ 21 апреля 2011

Я подключился к базе данных mysql и пытаюсь использовать jquery для заполнения раскрывающегося меню, используя данные из базы данных и JSON.

У меня нет большого опыта работы с JSON, но я прочиталво многих статьях и в Интернете искали учебные пособия.

В моем PHP для подключения к базе данных последние строки форматируются и правильно выводятся в формате JSON:
$response = $_GET["jsoncallback"] . "(" . json_encode($colors) . ")";
echo $response;

В javascript я использую:
$.getJSON("db.php?jsoncallback=?", function(data){ //loop that populates the drop down });

У меня настроен jquery, чтобы получить JSON и заполнить раскрывающийся список, что также работает правильно.Однако данные JSON, созданные в PHP, выводятся вверху моей сгенерированной страницы.

, т. Е. ([{"color":"Purple"},{"color":"Red"},{"color":"Blue"},{"color":"Pink"},{"color":"Yello"}])

Как мне получить доступ к jsoncallback без выводаJSON на моей странице?

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Похоже, что вы используете один и тот же файл для генерации вывода JSON, а также для генерации ваших обычных страниц, поэтому JSON будет выводиться вверху страницы.

Попробуйте обернуть вывод JSON в оператор if, который запрещает вывод, если только вы не запросите его, т.е. когда вы делаете запрос AJAX, или перемещаете вывод JSON в другой файл, такой как ajax.php, который специально предназначен для обработки запросов AJAX. Простой пример ниже.

Обновляет JS, передавая новый параметр действий.

$.getJSON("ajax.php?jsoncallback=?", { action: 'get_colors' },  function(data){ //loop that populates the drop down })

Новый PHP-файл ajax.php

// Include required other php files, etc
switch ($_GET['action']) {

    case 'get_colors':
        $response = $_GET["jsoncallback"] . "(" . json_encode($colors) . ")";
        echo $response;
    break;

 }
0 голосов
/ 21 апреля 2011

Есть ли внутри блока скриптов следующее?Если нет, то это должно быть.

echo $response;

Примерно так:

echo "<script>{$response}</script>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...