múltiples entradas de archivos csv en script java

 var marker = new google.maps.Marker({
    position: myLatlng, 
    map: map,
    title:"Hello World!"
});

        <?php 
    $fd = fopen ("landmarks.csv", "r");
    echo "var latlngarr=new Array();";
    $i=0;
    echo "var markerarr=new Array();";

    while (!feof ($fd)) {
        $buffer = fgetcsv($fd, 4096); 

        echo "var latlngarr[$i] = new google.maps.LatLng($buffer[2],$buffer[3]);";
        echo "var markerarr[$i] = new google.maps.Marker({
            position: latlngarr[$i], 
            map: map,
            title:$buffer[1]";
        });
        $i++;
    }
    fclose ($fd);
    ?>

Quiero crear varios marcadores en google maps ... la primera entrada funciona ... pero las otras, desde el archivo csv, ¿no funcionan? ¿Hay algo malo con el código mixto php y Javscript?

preguntado el 16 de mayo de 11 a las 17:05

No estoy seguro de si esto puede ayudarlo, pero SitePoint hizo un tutorial sobre cómo hacer que Google Maps extraiga ubicaciones para marcadores de un archivo XML usando AJAX - blogs.sitepoint.com/google-maps-api-jquery. Si planea ver una buena cantidad de marcadores, o usar una base de datos para almacenar sus detalles (en cuyo caso otro script PHP podría generar el XML requerido para tener estos datos disponibles dinámicamente), puede valer la pena echarle un vistazo. -

2 Respuestas

Agregue comillas alrededor de las cadenas y corrija las faltas }

var marker = new google.maps.Marker({
position: myLatlng, 
map: map,
title:"Hello World!"
});

<?php 
$fd = fopen ("landmarks.csv", "r");
echo "var latlngarr=new Array();";
$i=0;
echo "var markerarr=new Array();";

while (!feof ($fd)) {
    $buffer = fgetcsv($fd, 4096); 
?>
    latlngarr[<?= $i ?>] = new google.maps.LatLng(<?= $buffer[2] ?>, <?= $buffer[3] ?>);
    markerarr[<?= $i ?>] = new google.maps.Marker({
        position: latlngarr[<?= $i++ ?>], 
        map: map,
        title: '<?= $buffer[1] ?>'
    });
<?php
}
fclose ($fd);
?>

contestado el 16 de mayo de 11 a las 21:05

Supongo que posiblemente los datos que salen del archivo CSV no se citan correctamente, en particular el title atributo. Al construir dinámicamente Javascript desde PHP, siempre debe usar json_encode ():

$b2 = json_encode($buffer[2]);
$b3 = json_encode($buffer[3]);
$title = json_encode($buffer[1]);
echo "var latlngarr[$i] = new google.maps.LatLng($b2,$b3);";
echo "var markerarr[$i] = new google.maps.Marker({
     position: latlngarr[$i], 
     map: map,
     title: $title";
});

el uso de json_encode garantiza que todo lo que esté en esas variables de PHP se traducirá en Javascript sintácticamente correcto.

contestado el 16 de mayo de 11 a las 21:05

Lo intenté, pero desafortunadamente ese no parece ser el problema. - usuario494461

Consulte también su consola de JavaScript para ver si hay otros errores. eso es shift-ctrl-J en Firefox. - Marc B

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.