-
21.11.11 15:39 #1
- Registriert seit
- Nov 2011
- Beiträge
- 90
Hallo,
vielleicht hat der ein oder andere es schon in meinem letzten Thema schon gelesen und habe ein Problem mit PHP & Formularen.
Folgendes Problem habe ich:
Ich habe 2 Seiten (index.php (Hauptseite) und genxml.php (Wo der XML Code erstellt wird)) und möchte nun eine Möglichkeit schaffen das man per URL oder Formular (z.B. index.php?year=2010 ) auf der index.php ein Jahr auswählen kann welches dann in der genxml.php angewendet wird.
Wie mache ich das?
In meiner index.php gibt es eine Zeile in der die genxml.php so aufgrufen wird:
Kann mir dazu vielleicht jemand helfen?PHP-Code:....
});
downloadUrl("/map/genxml.php", function(data)
{
....
Danke
-
Wie sieht die Funktion downloadUrl() aus?
-
21.11.11 21:14 #3
- Registriert seit
- Nov 2011
- Beiträge
- 90
PHP-Code:<script type="text/javascript">
//<![CDATA[
......
function initialize()
{
var query = location.search.substring(1);
var pairs = query.split("&");
for (var i=0; i<pairs.length; i++)
{
var pos = pairs[i].indexOf("=");
var argname = pairs[i].substring(0,pos).toLowerCase();
var value = pairs[i].substring(pos+1).toLowerCase();
if (argname == "lat")
{
lat = parseFloat(value);
}
if (argname == "lng")
{
lng = parseFloat(value);
}
if (argname == "zoom")
{
zoom = parseInt(value);
}
if (argname == "type")
{
if (value == "m") {maptype = google.maps.MapTypeId.ROADMAP;}
if (value == "k") {maptype = google.maps.MapTypeId.SATELLITE;}
if (value == "h") {maptype = google.maps.MapTypeId.HYBRID;}
if (value == "t") {maptype = google.maps.MapTypeId.TERRAIN;}
}
}
var myOptions =
{
zoom: zoom,
center: new google.maps.LatLng(lat,lng),
mapTypeId: maptype,
scaleControl: true
}
map = new google.maps.Map(document.getElementById("map"), myOptions);
makeLink();
google.maps.event.addListener(map, \'maptypeid_changed\', makeLink);
google.maps.event.addListener(map, \'center_changed\', makeLink);
google.maps.event.addListener(map, \'bounds_changed\', makeLink);
google.maps.event.addListener(map, \'zoom_changed\', makeLink);
google.maps.event.addListener(map, \'click\', function()
{
infowindow.close();
});
downloadUrl("/map/torn_genxml.php", function(data)
{
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++)
{
var zip = markers[i].getAttribute("zip");
var city = markers[i].getAttribute("city");
var bundesland = markers[i].getAttribute("bundesland");
var country = markers[i].getAttribute("country");
var uhrzeit = markers[i].getAttribute("uhrzeit");
var landnutzung = markers[i].getAttribute("landnutzung");
var intensitaet = markers[i].getAttribute("intensitaet");
var art = markers[i].getAttribute("art");
var typ = markers[i].getAttribute("typ");
var urls = markers[i].getAttribute("urls");
var year = markers[i].getAttribute("year");
var month = markers[i].getAttribute("month");
var day = markers[i].getAttribute("day");
var lat = markers[i].getAttribute("lat");
var lng = markers[i].getAttribute("lng");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<div class=\'infowindow\'><strong>" + city + " " + year + "</strong> <br/>Ort: " + zip + "" + city + " / " + bundesland + " (" + country + ")<br>Datum: " + day + "." + month + "." + year + "<br>Zeitpunkt: " + uhrzeit + "<br>Intensität: " + intensitaet + "<br>Art: " + art + "<br><a href=\'" + urls + "\' target=\'_blank\'>... mehr Infos</a></div>";
var type = markers[i].getAttribute("type");
var marker = createMarker(point,city,html,type);
}
show("tornado");
show("tornadof0");
show("tornadof1");
show("tornadof2");
show("tornadof3");
show("tornadof4");
show("tornadof5");
show("funnelcloud");
show("sturmboe");
hide("unbekannt");
makeSidebar();
});
}
....
//]]>
</script>
-
25.11.11 20:21 #4
Du übergibst die Daten per Formular oder per URL und bei der entsprechenden Seite hohlst du dir die Daten wieder mit:
Wenn die URL so aussieht index.php?year=2010 wäre der Aufruf so:
um die Daten wieder in eine Variable zu speichern.PHP-Code:$jahr = $_GET["year"];
bei einem Formular so:
PHP-Code:$jahr = $_POST["year"];
PHP-Code:<form action="index.php" method="post">
<select name="year" id="year">
<option value="2010">2010</option>
</select>
<input type="submit" />
</form>
Geändert von Starfox2007 (25.11.11 um 20:24 Uhr)
-
25.11.11 20:45 #5
- Registriert seit
- Nov 2011
- Beiträge
- 90
Danke für die Antwort aber genau das habe ich auch schon gemacht und es hat nicht geklappt. Auf einer Testseite ging es nur da wo ich es brauche ging es nicht. Hatte es mit einem Formular und der POST Funktion gemacht.
-
Die Alternative wäre eine GET-Übergabe....
Du könntest das abhängig machen von der ausgewählten Option...
Dass durch eine Veränderung beim SELECT einfach durch Javascript der Link abgeändert wird.
Wie genau, kann ich jetzt auf die schnelle - und um die Uhrzeit - nicht erklären... Probieren geht bekanntlich über Studieren!
€: Wieso gibst du der Funktion downloadUrl nicht einfach einen zusätzlichen Parameter, nämlich das Jahr?
Grüße
-
26.11.11 08:09 #7
- Registriert seit
- Nov 2011
- Beiträge
- 90
Habe ich auch schon probiert.
Ging auch nicht.
Deshalb frage ich ja auch hier ob vielleicht jemand weiter weiß.
Ich zumindest gebe es bald auf.
-
Das ist Javascript, oder?
Dann könntest du die URL einfach per ajax aufrufen und dort mit POST Daten mitschicken!
-
26.11.11 11:23 #9
- Registriert seit
- Nov 2011
- Beiträge
- 90
Ja aber auch nur der Teil von Google Map.
Den Rest habe und möchte ich gerne in PHP machen.
Nur wie übergebe ich den Wert an die eine Datei?
-
Hi,
mal ganz blöd gefragt: was macht die genxml.php eigentlich?Oracle Certified MySQL 5 Professional Developer
Zend Certified PHP 5.3 Engineer
Vorträge, Webinare, etc im Mayflower - Blog
-
26.11.11 12:38 #11
- Registriert seit
- Nov 2011
- Beiträge
- 90
Sie erzeugt aus einer MySQL DB eine XML Datei mit Marker die an auf einer Google Map angezeigt werden.
-
Ok, du hast uns noch nicht gezeigt, wie die JS Funktion "downloadUrl" aussieht. In deinem Beispiel oben ist ein Aufruf der Funktion zusehen.
Oracle Certified MySQL 5 Professional Developer
Zend Certified PHP 5.3 Engineer
Vorträge, Webinare, etc im Mayflower - Blog
-
Postest du bitte mal die Definition der "downloadUrl".
Die müßte dem folgenden Schema entsprechen:
Code :1 2 3 4
function downloadUrl(...) { ... }Oracle Certified MySQL 5 Professional Developer
Zend Certified PHP 5.3 Engineer
Vorträge, Webinare, etc im Mayflower - Blog
-
26.11.11 13:01 #14
- Registriert seit
- Nov 2011
- Beiträge
- 90
PHP-Code:<?php
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
$connection=mysql_connect ($localhost, $username, $password);
if (!$connection)
{
die('Not connected : ' . mysql_error());
}
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected)
{
die ('Can\'t use db : ' . mysql_error());
}
$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result)
{
die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
echo '<markers>';
while ($row = @mysql_fetch_assoc($result))
{
echo '<marker ';
echo 'year="' . parseToXML($row['year']) . '" ';
echo 'month="' . parseToXML($row['month']) . '" ';
echo 'day="' . parseToXML($row['day']) . '" ';
echo 'zip="' . parseToXML($row['zip']) . '" ';
echo 'city="' . parseToXML($row['city']) . '" ';
echo 'bundesland="' . parseToXML($row['bundesland']) . '" ';
echo 'country="' . parseToXML($row['country']) . '" ';
echo 'uhrzeit="' . parseToXML($row['uhrzeit']) . '" ';
echo 'landnutzung="' . parseToXML($row['landnutzung']) . '" ';
echo 'intensitaet="' . parseToXML($row['intensitaet']) . '" ';
echo 'art="' . parseToXML($row['art']) . '" ';
echo 'typ="' . parseToXML($row['typ']) . '" ';
echo 'urls="' . parseToXML($row['urls']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo 'type="' . $row['type'] . '" ';
echo '/>';
}
echo '</markers>';
?>
-
Nicht den Inhalt der genxml.php. Mich interessiert die Funktionsweise der JavaScript Funktion downloadUrl.
Oracle Certified MySQL 5 Professional Developer
Zend Certified PHP 5.3 Engineer
Vorträge, Webinare, etc im Mayflower - Blog
Ähnliche Themen
-
Daten an PHP übergeben
Von live4music im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 06.04.11, 10:25 -
Mit VB.net Daten an ein Programm übergeben
Von atlantyz im Forum .NET CaféAntworten: 4Letzter Beitrag: 29.06.08, 11:38 -
Daten an PDF übergeben
Von crotalus im Forum PHPAntworten: 6Letzter Beitrag: 14.11.06, 22:41 -
Daten übergeben
Von cheergirly1984 im Forum PHPAntworten: 5Letzter Beitrag: 21.05.05, 09:13 -
daten übergeben
Von Wolf of Doom im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 18.06.03, 11:38



7Danke

Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren