sid61
Mitglied
Hallo,
wieder mal ein Problem, was ich nicht lösen kann. Ich habe ein kleines Script, welches mir die Daten und Koordinaten von verschiedenen Immobilien ausgibt.
Mit PHP4 klappt das ganz prima und ohne Probleme. Nun habe ich das ganze unter PHP5 installiert und siehe da, Es werden alle Daten korrekt ausgelesen, aber die Map wird nicht mehr angezeigt. Ich habe nun einige Stunden herum experimentiert, verstehe aber nicht, warum die Map nicht angezeigt wird..
Hier ist der Code, der eigentlich funktioniert - jedenfalls unter php4 läuft es super..
Ich habe mal die Stelle im Code markiert, welche ich auskommentiert hatte. Danach wurde mir zumindest die Map angezeigt.
Was mache ich falsch ?
Kann mir jemand was dazu sagen
Gruss Kasimir
wieder mal ein Problem, was ich nicht lösen kann. Ich habe ein kleines Script, welches mir die Daten und Koordinaten von verschiedenen Immobilien ausgibt.
Mit PHP4 klappt das ganz prima und ohne Probleme. Nun habe ich das ganze unter PHP5 installiert und siehe da, Es werden alle Daten korrekt ausgelesen, aber die Map wird nicht mehr angezeigt. Ich habe nun einige Stunden herum experimentiert, verstehe aber nicht, warum die Map nicht angezeigt wird..
Hier ist der Code, der eigentlich funktioniert - jedenfalls unter php4 läuft es super..
Ich habe mal die Stelle im Code markiert, welche ich auskommentiert hatte. Danach wurde mir zumindest die Map angezeigt.
Code:
<?
include ("livecode.php");
// define vars
$name = '';
$lat = '';
$lon = '';
$type = '';
$id = '';
// Get the javascript defining the points after inserting.
############# Wenn ich diese nachfolgende eine Zeile entferne,
wird mir die Map angezeigt, weil ja keine Daten mehr gesetzt werden
werden. Irgendwas läuft mit dieser einen Zeile anders, als es bei php4
der Fall ist. Sobald ich diese Zeile wieder aktiviere, werden alle
Datensätze korrekt angezeigt, aber die Karte nicht mehr ...
##########################################
$jsPointsArray = getPointsJS();
#########################################################
$pageHTML = <<<EOH
// Pagestart
<head>
<script src="http://maps.google.com/maps?file=api&v=2&key=$key" type="text/javascript"></script>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 820px; height: 480px">
<script type="text/javascript">
var mArray = Array();
var map;
function load() {
doLoad();
$jsPointsArray
addMarkers();
}
function doLoad() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl());
map.addMapType(G_PHYSICAL_MAP);
// Nachfolgender Output zeigt entsprechende Wunschmap an (Style)..
// * G_NORMAL_MAP normale, 2D Google Maps
// * G_SATELLITE_MAP Photo Map
// * G_HYBRID_MAP Map mit Photo und Plan
// * G_PHYSICAL_MAP Gelaende Map
map.setCenter(new GLatLng(51.49506473014368,10.37109375), 5, G_PHYSICAL_MAP);
map.addControl(new GMapTypeControl());
GEvent.addListener(map, 'click', mapClick);
var overV=new GOverviewMapControl(new GSize(180, 120))
map.addControl(overV);
}
}
var gmarkers = [];
var htmls = [];
var i = 0;
var baseIcon = new GIcon();
baseIcon.iconSize=new GSize(32,32);
baseIcon.shadowSize=new GSize(32,32);
baseIcon.iconAnchor=new GPoint(16,32);
baseIcon.infoWindowAnchor=new GPoint(10,0);
function addMarkers() {
if (mArray.length) {
var bounds = new GLatLngBounds();
for (n=0 ; n < mArray.length ; n++ ) {
var mData = mArray[n].split(';');
var point = new GLatLng(mData[0],mData[1]);
bounds.extend(point);
var luder = (mData[2]);
var icon = new GIcon(baseIcon,"/images/estate/realestate"+luder+".png");
var marker = createMarker(point, icon, mData[3], mData[4], mData[5], mData[6], mData[7],mData[8]);
map.addOverlay(marker);
}
map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
}
}
function createMarker(point, icon, title, category, id, agent, thumb, agentphone) {
var marker = new GMarker(point, {icon:icon,title:title});
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml('<div style="width:250px; height:305px"><img src="/components/com_wohnraum24/img/thb/'+ thumb +'"></img><table class="yellowbox" width="250px" border="0" cellspacing="1" cellpadding="2"><tr><td width="14%"><img src="http://www.tutorials.de/forum/images/home.png" alt="Object Title and Type" width="24" height="24" align="middle" /></td><td width="86%" valign="middle"><b>' + title + '</b><br>Property Type: ' + category + '</td></tr></table><p><table class="greenbox" width="250px" border="0" cellspacing="1" cellpadding="2"><tr><td width="14%"><img src="http://www.tutorials.de/forum/images/zoom-in.png" alt="Detailview" width="24" height="24" align="middle" /></td><td width="86%" valign="middle"><a href="/index.php?option=com_wohnraum24&task=view&id=' + id + '" target="_blank"><center><img id="showdetail" src="http://www.tutorials.de/forum/images/showdetail.png" width="118" height="28" hspace="0" vspace="0" border="0" alt="Show Details"></a><center></td></tr></table><b>Contact your Agent:</b><table class="bluebox" width="250px" border="0" cellspacing="1" cellpadding="2"><tr><td width="14%"><img src="http://www.tutorials.de/forum/images/user.png" alt="Your Agent" width="24" height="24" align="middle" /></td><td width="86%" valign="middle">'+ agent + '</td></tr><tr><td width="14%"><img src="http://www.tutorials.de/forum/images/call-accept.png" alt="Call us" width="24" height="24" align="middle" /></td><td width="86%" valign="middle">'+ agentphone + '</td></tr></table></div>');});
return marker;
}
function mapClick(marker, point) {
if (!marker) {
oLat = document.getElementById("lat");
oLat.value = point.y;
oLon = document.getElementById("lon");
oLon.value = point.x;
oDesc = document.getElementById("name");
oDesc.value = 'name';
}
}
</script>
</div>
</body>
</html>
EOH;
print $pageHTML;
function getPointsJS() {
include ("livecode.php");
mysql_connect($host,$user,$password);
@mysql_select_db($database) or die( "Unable to select database");
$sql = "SELECT j.`id`, j.`type` AS type2, j.`name`, j.`postcode`, j.`state`, j.`lat`, j.`lon`, jt.`name` AS category, ja.`name` AS agent, ja.`mobile` AS agentphone, jh.`thumb` FROM jos_hp_properties j, jos_hp_prop_types jt, jos_hp_agents ja, jos_hp_photos jh WHERE j.lat <> 0.00000000 AND j.lon <> 0.00000000 AND jh.property=j.id AND jh.ordering=1 AND jt.id=j.type AND ja.id=j.agent";
$result = mysql_query($sql) or DBError("LINE: " .__LINE__. " $sql");
$nRows = mysql_num_rows($result);
$javaScript = '';
if ($nRows) {
while ($row = mysql_fetch_assoc($result)) {
$row{'type2'}= htmlspecialchars(htmlentities($row{'type2'}));
$row{'name'} = htmlspecialchars(htmlentities($row{'name'}));
$row{'name'} = str_replace(';',',',$row{'name'});
$row{'type'}= htmlspecialchars(htmlentities($row{'type'}));
$row{'state'}= htmlspecialchars(htmlentities($row{'state'}));
$row{'category'}= htmlspecialchars(htmlentities($row{'category'}));
$row{'agent'}= htmlspecialchars(htmlentities($row{'agent'}));
$row{'id'}= $row{'id'};
$javaScript .= "mArray.push('{$row{'lat'}};{$row{'lon'}};{$row{'type2'}};{$row{'name'}};{$row{'category'}};{$row{'id'}};{$row{'agent'}};{$row{'thumb'}};{$row{'agentphone'}}')\n";
}
print "<h3><span class=\"style6\">Nachfolgend Ihre gesuchten Immobilien..</span></h3>\n";
}
else {
print "<h3><span class=\"style6\">Es gibt keine Immobilien zu dieser Abfrage..</span></h3>\n";
}
return $javaScript;
}
function assertTable() {
}
function DBError($sql){
print "Error: \n" . mysql_error() . "\n";
print "<hr>\n";
print "$sql\n";
print "<hr>\n";
exit;
}
?>
Was mache ich falsch ?
Kann mir jemand was dazu sagen
Gruss Kasimir
Zuletzt bearbeitet: