Вернуть объект JSON, используя PHP json_encode () и MySQL для передачи в функцию jQuery - PullRequest
4 голосов
/ 22 декабря 2010

Я пытаюсь создать объект json из результатов MySQL, но не получаю нужный мне результат.

Вот PHP

$json = array();
$result = mysqli_query ($connection, $query);
    echo '['; 

        while($row = mysqli_fetch_array ($result))     
        {
            echo '{';
            echo '"latitude":"'.$row['lat'].'",';
            echo '"longitude":"'.$row['lng'].'",';
            echo '"icon":'.'"./images/'.$row['busColor'].'.png"';
            echo '}';    
        }
        echo ']';

        $jsonstring = json_encode($json);
        echo $jsonstring;

        die(); 

Это выводит

[{"latitude":"39.976257","longitude":"-83.003464","icon":"./images/pink.png"}][]

Но я хочу это

[{"latitude":"39.976257","longitude":"-83.003464","icon":"./images/pink.png"}]

как только я получу результат, мне нужно передать объект в функцию плагина jQuery, если это имеет какое-то значение $.getJSON('myJsonURL, function(myMarkers){ $("#map").goMap({ markers: myMarkers }); }); Спасибо

Ответы [ 3 ]

23 голосов
/ 22 декабря 2010

Я думаю, правильный способ сделать это будет:

$json = array();
$result = mysqli_query ($connection, $query);
while($row = mysqli_fetch_array ($result))     
{
    $bus = array(
        'latitude' => $row['lat'],
        'longitude' => $row['lng'],
        'icon' => './images/' . $row['busColor'] . '.png'
    );
    array_push($json, $bus);
}

$jsonstring = json_encode($json);
echo $jsonstring;

die();
7 голосов
/ 22 декабря 2010

вы выводите свой json вручную, а затем вызываете json_encode для пустого массива () - $ json

json_encode () выводит [], когда вы пропускаете пустой массив, поэтому ваш последний [] приходит отсюда
$jsonstring = json_encode($json);<br> echo $jsonstring;
Редактировать: Подробнее о json_encode json_encode php manual

5 голосов
/ 22 декабря 2010

Вы начинаете с определения массива.

Затем вы генерируете JSON вручную.

Затем вы конвертируете массив в JSON и выводите его.

Замените все эхооператоры внутри и в конце цикла while с кодом для создания ассоциативного массива, содержащего данные, а затем вставьте его в $ json.

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