Hi,
dieser Ruf nach Hilfe klingt vielleicht sehr speziell, aber ich hoffe ihr könnt mir weiterhelfen.
Vorab: Ich bin Einsteiger was php angeht und freue mich immer was neues zu lernen
Also folgendes Problem:
Ich habe das unten aufgeführte Scipt (zum Teil kopiert und dann etwas modifiziert) und möchte die Funktion etwas erweitern.
Derzeit wird alles was in das Formular eingegeben wird ohne weiteres gespeichert und es soll folgerndermaßen geändert werden.
Die Daten "type" und "type2" sollen vor dem speichern mit einer anderen Tabelle (nennen wir sie einfach "type_table") verglichen werden. Diese Tabelle enthält lediglich die Spalten "type" und "type2".
Wenn die eingegeben Daten bei "type" und "type2" mit den Daten mit der Tabelle "type_table" übereinstimmen (beide Daten stehen irgendwo in "type_table" in der gleichen Zeile) soll das Formular in der Tabelle "markers" gespeichert werden.
Beim speichern in der Tabelle "markers" sollen jedoch die Daten auf "type2" nicht gespeichert werden.
Wenn die Daten nicht übereinstimmen soll unter der Karte nicht "Location added" sondern "type incorrect" erscheinen.
Ich hoffe das war einigermaßen verständlich... :-/
Kann mir da jemand helfen?
phpsqlinfo_add.html
phpsqlinfo_addrow.php
dieser Ruf nach Hilfe klingt vielleicht sehr speziell, aber ich hoffe ihr könnt mir weiterhelfen.
Vorab: Ich bin Einsteiger was php angeht und freue mich immer was neues zu lernen
Also folgendes Problem:
Ich habe das unten aufgeführte Scipt (zum Teil kopiert und dann etwas modifiziert) und möchte die Funktion etwas erweitern.
Derzeit wird alles was in das Formular eingegeben wird ohne weiteres gespeichert und es soll folgerndermaßen geändert werden.
Die Daten "type" und "type2" sollen vor dem speichern mit einer anderen Tabelle (nennen wir sie einfach "type_table") verglichen werden. Diese Tabelle enthält lediglich die Spalten "type" und "type2".
Wenn die eingegeben Daten bei "type" und "type2" mit den Daten mit der Tabelle "type_table" übereinstimmen (beide Daten stehen irgendwo in "type_table" in der gleichen Zeile) soll das Formular in der Tabelle "markers" gespeichert werden.
Beim speichern in der Tabelle "markers" sollen jedoch die Daten auf "type2" nicht gespeichert werden.
Wenn die Daten nicht übereinstimmen soll unter der Karte nicht "Location added" sondern "type incorrect" erscheinen.
Ich hoffe das war einigermaßen verständlich... :-/
Kann mir da jemand helfen?
phpsqlinfo_add.html
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Copyright 2008 Google Inc.
Licensed under the Apache License, Version 2.0:
http://www.apache.org/licenses/LICENSE-2.0
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>>Title</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=XXXXXXXXXXXXXXXXXXXXXXXXXX"
type="text/javascript"></script>
<script type="text/javascript">
var marker;
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(30.000000, 0.000000), 1);
GEvent.addListener(map, "click", function(overlay, latlng) {
if (latlng) {
marker = new GMarker(latlng, {draggable:true});
GEvent.addListener(marker, "click", function() {
var html = "<table>" +
"<tr><td>Name:</td> <td><input type='text' id='name'/> </td> </tr>" +
"<tr><td>Date:</td> <td><input type='text' id='date'/></td> </tr>" +
"<tr><td>9-digit Number:</td> <td><input type='text' id='type'/></td> </tr>" +
"<tr><td>3-digit Number:</td> <td><input type='text' id='type2'/></td> </tr>" +
"<tr><td></td><td><input type='button' value='Save & Close' onclick='saveData()'/></td></tr>";
marker.openInfoWindow(html);
});
map.addOverlay(marker);
}
});
}
}
function saveData() {
var name = escape(document.getElementById("name").value);
var date = escape(document.getElementById("date").value);
var type = escape(document.getElementById("type").value);
var type2 = escape(document.getElementById("type2").value);
var latlng = marker.getLatLng();
var lat = latlng.lat();
var lng = latlng.lng();
var url = "phpsqlinfo_addrow.php?name=" + name + "&date=" + date +
"&type=" + type + "&type2=" + type2 + "&lat=" + lat + "&lng=" + lng;
GDownloadUrl(url, function(data, responseCode) {
if (responseCode == 200 && data.length <= 1) {
marker.closeInfoWindow();
document.getElementById("message").innerHTML = "Location added.";
}
});
}
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="map_canvas" style="width: 600px; height: 400px"></div>
<div id="message"></div>
</body>
</html>
PHP-Code:
<?php
require("phpsqlinfo_dbinfo.php");
// Gets data from URL parameters
$name = $_GET['name'];
$date = $_GET['date'];
$lat = $_GET['lat'];
$lng = $_GET['lng'];
$type = $_GET['type'];
$type2 = $_GET['type2'];
// Opens a connection to a MySQL server
$connection = mysql_connect ("localhost", $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Insert new row with user data
$query = sprintf("INSERT INTO markers " .
" (id, name, date, lat, lng, type, type2 ) " .
" VALUES (NULL, '%s', '%s', '%s', '%s', '%s', '%s');",
mysql_real_escape_string($name),
mysql_real_escape_string($date),
mysql_real_escape_string($lat),
mysql_real_escape_string($lng),
mysql_real_escape_string($type),
mysql_real_escape_string($type2));
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
?>
Kommentar