JSON Выберите вариант вопроса? - PullRequest
0 голосов
/ 03 апреля 2010

Я написал что-то вроде этого,

`$ sql =" SELECT * FROM dbase ";

    $strOptions = "";

    if (!$q=mysql_query($sql)) {
        $strOptions = "<option>There was an error connecting to database</option>";
    }
    if (mysql_num_rows($q)==0) {
        $strOptions = "<option>There are no news in database</option>";
    }else {
        $a=0;
        while ($redak=mysql_fetch_assoc($q)) {
            $a=$a+1;
            $vvvv[$a]["id"]=$redak["id"];
            $vvvv[$a]["ssss"]=$redak["ssss"];
        }
    }
    for ($i=1; $i<=$a; $i++) {
        $strOptions = $strOptions. '<option value="'. $vvvv[$i]["id"] .'">'.$i.'.) - '.strip_tags($vvvv[$i]["ssss"]).'</option>';
    }


    echo '[{ "message": "3" },{ "message": "' . count($wpdb->get_results("SELECT * FROM dbase")) . '" },{ "message": "'.$strOptions .'"}]';`

Я просто не могу позже проанализировать файл json, позже я анализирую его таким образом, чтобы заполнить опцию выбора

$jq("#select-my").children().remove();
        $jq("#select-my").append(data[2].message);

Я использую форму jquery, все работает нормально, кроме этого, я не могу разобрать данные для элемента select-option. Я пробую и с json_encode в php. Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 03 апреля 2010

Если я правильно читаю ваш PHP, ваш JSON будет выглядеть так:

[{ "message": "3" },{ "message": "(count_goes_here)" },{ "message": "(options_go_here)"}]

Верхний уровень JSON строки должен быть анонимным объектом, а не массивом ( details ). Так что это действительно:

{"test": ["one", "two", "three"]}

но массив сам по себе не является:

["one", "two", "three"]

Чтобы исправить это, просто оберните ваш массив в объект:

{"values": [{ "message": "3" },{ "message": "(count_goes_here)" },{ "message": "(options_go_here)"}]}

... и затем, когда вы десериализовали строку JSON, используйте свойство values результирующего объекта для доступа к массиву.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...