Как лучше всего реализовать данные MySQL в строке кода JavaScript? - PullRequest
3 голосов
/ 11 августа 2011

Я изменяю некоторый javascript для карт Google, чтобы из моей базы данных извлекалась другая информация о булавках. Если бы я делал это только с помощью php, это было бы так:

<?php while($row = mysql_fetch_assoc($query))
{$title = $row['title']; $desc = $row['desc']; echo 'This '.$title .' and this '. $desc .';}?>

Если в базе данных было 5 строк, то будет пять строк с 5 различными заголовками и описаниями. Но у меня есть такая строка JavaScript, которую я хотел бы включить в цикл while:

map.addMarkerByLatLng(37.8685, -1.5108, "Sanatario de Terburculosos", createInfo("title goes here",""));

Как я могу написать это так, чтобы этот javascript был в цикле php while или как я могу сделать javascript equivelant цикла php while, чтобы я мог получить несколько строк lang, lat информации, каждая в своем собственном коде JavaScript, например выше

Спасибо.

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

ajax.php

<?php
    $obj = array();
    while($row = mysql_fetch_assoc($query)){
        $obj[] = new array(
            "title" => $row["title"],
            "desc"  => $row["desc"],
            "lat"   => $row["lat"],
            "lon"   => $row["lon"]
        );
    }
    echo json_encode($obj);
?>

JQuery AJAX

$.getJSON("ajax.php",function(data){
    for(var i=0;i<data.length;i++){
        map.addMarkerByLatLng(
            data[i].lon, 
            data[i].lat, 
            data[i].description, 
            createInfo(data[i].title,""));
    }
});
1 голос
/ 11 августа 2011

Объедините два предоставленных вами примера кода:

<?php
$pinTpl = 'map.addMarkerByLatLng( %s , %s , "%s" , createInfo( "%s" , "" ) );';
while( $row = mysql_fetch_assoc( $query ) ){
  echo sprintf( $pinTpl ,
         $row['lat'] ,   # Where 'lat' is the field name for the latitude in DB
         $row['long'] ,  # Where 'long' is the longitude field name in DB
         $row['title'] , # The title
         $row['desc']    # The description
  )."\n";                # A newline, for readability
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...