Ich lade eine Karte und füge Markierungen aus einer Datenbank in die Leinwand ein. Wenn ich die Seite zum ersten Mal lade, wird die Funktion "load()" aufgerufen und ich weiß, dass die Eingabe "form" null ist, weil ich eine Warnung habe, wenn form = null ist. Wenn ich im Formularfeld auf "Suchen" drücke, wird die "load" -Funktion aufgerufen und ich weiß form! = Null, weil ich eine andere Warnung habe. Aber nachdem ich 'ok' für die andere Warnung gedrückt habe, kann ich sehen, dass die Ladung mit form = null erneut aufgerufen wird, da die entsprechende Warnung dann erscheint. HierKann mir jemand helfen, die Logik zu verstehen und sie zum Laden einer Karte zu korrigieren?
ist der Beginn der Ladefunktion im Kopf:
//Edit (adding more information for clarity)
//<![CDATA[
var map;
function load(form) {
if (form != null) {
alert("Form not null!");
} else {
alert("Form is null :-(");
}
var myOptions = {
center: new google.maps.LatLng(42, -70),
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map"),myOptions);
// rest is edited out
}
function addMarkers() {
//************MAP WILL NOT GENERATE WITH THIS SECTION OR ADD MARKERS*************
microAjax("genjsonphp.php?stdt="+costlow+"&enddt="+costhigh, function(data) {
var json = JSON.parse(data);
var points = json;
for (var i = 0; i<points.length; i++)
{
var point = points[i];
var latlng = new google.maps.LatLng(parseFloat(point.LocationLat)/1000000,parseFloat(point.LocationLon)/1000000);
var marker = createMarker(point.House,
point.Place,
point.Cost,
latlng,
map);
}
});
//************************************************************************************
}
function createMarker(House, Place, Cost, latlng, mapsent)
{
var marker = new google.maps.Marker({
position: latlng,
map: mapsent,
title: House
});
marker.info = new google.maps.InfoWindow({
content: House + '<br />' + Place + '<br />' + Cost
});
google.maps.event.addListener(marker, 'click', function(){
marker.info.open(mapsent, marker);
});
return marker;
}
//]]>
Hier sind die Felder, um die Karte zu laden und die Suchkriterien eingrenzen:
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="2" ALIGN="Center" WIDTH=80%>
<body onload="load()" onunload="GUnload()">
<TR>
<TD>
<div id="map" style="width: 1250px; height: 750px"></div>
</TD>
<TD>
<form method="post">
<input type="text" name="search_criteria" id="search_criteria" />
<!--button to modify search criteria-->
<button type="submit" id="narrow_search_form" name="narrow_search_form" onClick = "addMarkers()">Search</button>
</form>
</body>
</TD>
</TR>
</TABLE>
Wie kann ich meinen Code zu beheben so dass, wenn der Suchknopf gedrückt wird, die Ladefunktion einmal aufgerufen wird und die Information in dem Formular an die Ladefunktion übergeben wird?
Warum haben Sie ein Body-Tag in einem Tabellen-Tag? – j08691
erstens, ist das die echte Struktur? Bitte beachten Sie, dass die 'Tabelle' ein 'body'-Start-Tag enthält und nicht schließt. Fügen Sie bitte ein konstruierteres Code-Snippet ein. –
Entschuldigung, versucht, nur das Wesentliche zu posten. Ich füge den Rest hinzu. – Stagleton