idLD foreign key von talas_v5.location_device in poi Tabelle ,in der Spalte idLD speichern beim hinzufügen eines POI auf die Map
This commit is contained in:
@@ -17,18 +17,6 @@ const ShowAddStationPopup = ({ onClose, map, latlng }) => {
|
|||||||
const [locationDeviceData, setLocationDeviceData] = useState([]);
|
const [locationDeviceData, setLocationDeviceData] = useState([]);
|
||||||
const [deviceName, setDeviceName] = useState("");
|
const [deviceName, setDeviceName] = useState("");
|
||||||
|
|
||||||
/* useEffect(() => {
|
|
||||||
if (map && loadData) {
|
|
||||||
|
|
||||||
console.log("Map and loadData are defined in ShowAddStationPopup.js", map);
|
|
||||||
console.log("loadData object in ShowAddStationPopup.js:", loadData);
|
|
||||||
// Your code here
|
|
||||||
}else{
|
|
||||||
console.log("Map and loadData are not defined in ShowAddStationPopup.js");
|
|
||||||
}
|
|
||||||
}, [map, loadData]); */
|
|
||||||
|
|
||||||
// In Kontextmenü-Formular Typen anzeigen
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchpoiTypData = async () => {
|
const fetchpoiTypData = async () => {
|
||||||
try {
|
try {
|
||||||
@@ -51,40 +39,8 @@ const ShowAddStationPopup = ({ onClose, map, latlng }) => {
|
|||||||
fetchpoiTypData();
|
fetchpoiTypData();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
//-----------------handleSubmit-------------------
|
|
||||||
const handleSubmit = async (event) => {
|
|
||||||
event.preventDefault();
|
|
||||||
const formData = {
|
|
||||||
name,
|
|
||||||
poiTypeId,
|
|
||||||
latitude,
|
|
||||||
longitude,
|
|
||||||
};
|
|
||||||
|
|
||||||
const response = await fetch("/api/addLocation", {
|
|
||||||
method: "POST",
|
|
||||||
headers: { "Content-Type": "application/json" },
|
|
||||||
body: JSON.stringify(formData),
|
|
||||||
});
|
|
||||||
|
|
||||||
if (response.ok) {
|
|
||||||
setTrigger((trigger) => {
|
|
||||||
console.log("Aktueller Trigger-Wert:", trigger); // Vorheriger Wert
|
|
||||||
const newTrigger = trigger + 1;
|
|
||||||
console.log("Neuer Trigger-Wert:", newTrigger); // Aktualisierter Wert
|
|
||||||
onClose();
|
|
||||||
return newTrigger;
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
console.error("Fehler beim Hinzufügen des POI");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (map && typeof map.closePopup === "function") {
|
|
||||||
map.closePopup();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
useEffect(() => {
|
/* useEffect(() => {
|
||||||
// Funktion zum Abrufen der Daten von der API -> DB talas_v5.location_device
|
// Funktion zum Abrufen der Daten von der API -> DB talas_v5.location_device
|
||||||
const fetchData = async () => {
|
const fetchData = async () => {
|
||||||
try {
|
try {
|
||||||
@@ -101,7 +57,7 @@ const ShowAddStationPopup = ({ onClose, map, latlng }) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
fetchData();
|
fetchData();
|
||||||
}, []); // Leerarray als Dependency, um den Effekt nur beim Laden der Komponente auszuführen
|
}, []); // Leerarray als Dependency, um den Effekt nur beim Laden der Komponente auszuführen */
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -127,6 +83,41 @@ const ShowAddStationPopup = ({ onClose, map, latlng }) => {
|
|||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------
|
||||||
|
//-----------------handleSubmit-------------------
|
||||||
|
const handleSubmit = async (event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
const formData = {
|
||||||
|
name,
|
||||||
|
poiTypeId,
|
||||||
|
latitude,
|
||||||
|
longitude,
|
||||||
|
idLD: locationDeviceData.find((device) => device.name === deviceName)
|
||||||
|
.idLD,
|
||||||
|
};
|
||||||
|
|
||||||
|
const response = await fetch("/api/addLocation", {
|
||||||
|
method: "POST",
|
||||||
|
headers: { "Content-Type": "application/json" },
|
||||||
|
body: JSON.stringify(formData),
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response.ok) {
|
||||||
|
setTrigger((trigger) => {
|
||||||
|
console.log("Aktueller Trigger-Wert:", trigger); // Vorheriger Wert
|
||||||
|
const newTrigger = trigger + 1;
|
||||||
|
console.log("Neuer Trigger-Wert:", newTrigger); // Aktualisierter Wert
|
||||||
|
onClose();
|
||||||
|
return newTrigger;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error("Fehler beim Hinzufügen des POI");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (map && typeof map.closePopup === "function") {
|
||||||
|
map.closePopup();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//-----------------handleSubmit-------------------
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<form onSubmit={handleSubmit} className="m-0 p-2 w-full ">
|
<form onSubmit={handleSubmit} className="m-0 p-2 w-full ">
|
||||||
|
|||||||
@@ -11,13 +11,14 @@ const dbConfig = {
|
|||||||
|
|
||||||
export default function handler(req, res) {
|
export default function handler(req, res) {
|
||||||
if (req.method === "POST") {
|
if (req.method === "POST") {
|
||||||
const { name, poiTypeId, latitude, longitude } = req.body;
|
const { name, poiTypeId, latitude, longitude, idLD } = req.body;
|
||||||
console.log("Received data:", req.body); // Überprüfen der empfangenen Daten
|
console.log("Received data:", req.body); // Überprüfen der empfangenen Daten
|
||||||
const connection = mysql.createConnection(dbConfig);
|
const connection = mysql.createConnection(dbConfig);
|
||||||
|
|
||||||
const query = "INSERT INTO poi (description, idPoiTyp, position) VALUES (?, ?, ST_GeomFromText(?))";
|
const query =
|
||||||
|
"INSERT INTO poi (description, idPoiTyp, position, idLD) VALUES (?, ?, ST_GeomFromText(?),?)";
|
||||||
const point = `POINT(${longitude} ${latitude})`;
|
const point = `POINT(${longitude} ${latitude})`;
|
||||||
const values = [name, poiTypeId, point]; // Stellen Sie sicher, dass poiTypeId korrekt ist
|
const values = [name, poiTypeId, point, idLD]; // Stellen Sie sicher, dass poiTypeId korrekt ist
|
||||||
|
|
||||||
connection.query(query, values, (error, results) => {
|
connection.query(query, values, (error, results) => {
|
||||||
connection.end();
|
connection.end();
|
||||||
@@ -25,11 +26,15 @@ export default function handler(req, res) {
|
|||||||
console.error("Fehler beim Einfügen des Standorts:", error);
|
console.error("Fehler beim Einfügen des Standorts:", error);
|
||||||
return res.status(500).json({ error: "Ein Fehler ist aufgetreten" });
|
return res.status(500).json({ error: "Ein Fehler ist aufgetreten" });
|
||||||
}
|
}
|
||||||
res.status(200).json({ id: results.insertId, message: "Standort erfolgreich hinzugefügt" });
|
res
|
||||||
|
.status(200)
|
||||||
|
.json({
|
||||||
|
id: results.insertId,
|
||||||
|
message: "Standort erfolgreich hinzugefügt",
|
||||||
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
res.setHeader("Allow", ["POST"]);
|
res.setHeader("Allow", ["POST"]);
|
||||||
res.status(405).end(`Method ${req.method} Not Allowed`);
|
res.status(405).end(`Method ${req.method} Not Allowed`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user