Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/09/2010, 07:33
davidsbok
 
Fecha de Ingreso: diciembre-2005
Mensajes: 57
Antigüedad: 18 años, 4 meses
Puntos: 1
problema saltos de linea en bocadillo de google maps

Hola a todos, tengo un problema que ya me esta volviendo un poco loco y necesito ayuda del cacao que tengo ya en la cabeza. Mi problema es el siguiente:

Resulta que utilizo el api de google maps v2. Los datos los tengo en una base de datos. Para visualizar los datos en el bocadillo se pasan los datos a xml creando nodos y luego al mostrar el los datos en el bocadillo no me respeta los saltos de linea. Entonces cuando paso los datos a xml lo hago con php y el mapa se muestra en javascript.

En el archivo que genera xml le puse que al añadir el dato le pusiera espacio <br/> de la siguiente forma:

$valor=$row('descripcion');
$ba = stripslashes($valor);
$ba2= str_replace("\n","<br/>",$ba);
$dar_espacops= str_replace(" ","&nbsp; ",$ba2);
$bas=$dar_espacops;

Añado el dato al archivo xml:

echo 'horario="' . utf8_encode (parseToXML($bas)) . '" ';

Y en archivo que muestra el mapa, en el javascript:

leo los datos:

GDownloadUrl("phpsqlajax_genxml.php", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker") ;
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var categoria = markers[i].getAttribute("categoria");
var descripcion = markers[i].getAttribute("descripcion");
var horario = markers[i].getAttribute("horario");
if (horario.length>0) {var horario= "Horario:<br /> "+horario;}
var precio = markers[i].getAttribute("precio");
if (precio.length>0) {var precio= "Precio: "+precio;}
var contacto = markers[i].getAttribute("contacto");
var foto = markers[i].getAttribute("foto");
var clocal = markers[i].getAttribute("clocal");
var point = new GLatLng(parseFloat(markers[i].getAttribute("lng")),
parseFloat(markers[i].getAttribute("lat")));
var marker = createMarker(point, name, address, type, categoria, descripcion, horario, precio, contacto, foto,clocal);
map.addOverlay(marker);
}

los muestro:

function createMarker(point, name, address, type, categoria, descripcion, horario, precio, contacto, foto, clocal) {
var marker = new GMarker(point, customIcons[categoria]);
var html = "<b>" + name + "</b> <br/><span style='color: #808080; font-size: 9px;'>" + address+ "</span><br/><br/> <img src='images/iweb/minis/" + foto + "'> <br/><br/>Categoria: " +categoria+ "<br/> <br/>" +horario+ " <br/><br/>" +precio+ "<br/><br/>" +contacto+ "</b> <br/>" +foto+ "</b> <br/>"+clocal;
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;

Ahora en el bocadillo me sale el datos pero en lugar de hacerme los saltos de lina me aparece como texto el <br/> y no hace el salto.


¿¿¿Deberia hacer colocar los altos de lineas en el javascript???¿¿ Al leer o al mostrar los datos en javascript???¿¿En la creacion del xml??? Ayuda please...