JavaScript Wie - JavaScript Werte in PHP Variablen übergeben

VipE

Cadet 4th Year
Registriert
Feb. 2006
Beiträge
94
Hallo zusammen,

als erstes möchte ich sagen, dass ich neu in der JavaScript Umgebung bin und mir aus aktuellem Anlass den Kopf zerbreche wie ich JavaScript Inhalte an PHP übergeben kann :/

Für euch ist das sicherlich eine Leichtigkeit, aber für jemanden der sich seit 2 Tagen damit beschäftigt is es leider ne Qual - da ich vom Code aktuell nur Bahnhof versteh...

Ich hab nun den ganzen Tag gegoogelt etc. aber es funzt ned....

also - 1.php:
HTML:
var adresse = item.formatted_address;
var latitude = marker.position.lat();
var longitude = marker.position.lng();	
document.write('<a href="1_logic.php?adresse=' + adresse + '&latitude=' + latitude + '&longitude=' + longitude + '">weiter.../a>');

1_logic.php:
HTML:
$latitude = $_GET["latitude"];
$longitude = $_GET["longitude"];
$adresse = $_GET["adresse"];

#	Prüfe den Inhlat der Variablen
echo "adresse: $adresse <br>";
echo "latitude: $latitude <br>";
echo "longitude: $longitude <br>";

Ergebnis:
HTML:
Notice: Undefined index: latitude in C:\xampp\htdocs\WEB\1_logic.php on line 16

Notice: Undefined index: longitude in C:\xampp\htdocs\WEB\1_logic.php on line 17

Notice: Undefined index: adresse in C:\xampp\htdocs\WEB\1_logic.php on line 18

adresse:
latitude:
longitude:

Hinweis:
das eigentliche javascript is mehrere zeilen lang - ich möchte die GeoKoordinaten aus dem JavaScript in PHP übergeben und dann in die MySQL DB importieren.
(Ein import direkt aus JavaScript in MySQL scheidet aus, da ich noch weitere Daten aus Eingabefeldern an PHP übergebe und einen großen INSERT machen möchte)

Ich hoffe ihr könnt mir einen Tipp geben - mir raucht schon der Schädel mit den vielen Versuchen und google Suchaktionen....
 
Bist du sicher, dass dein Link richtig erzeugt wird? Einfach mal drüberfahren, und in der Statusleiste schauen.

Grundsätzlich bin ich mir nicht sicher, weshalb du den Link per document.write ins HTLM Dokument schreibst. Bedenke, dass der Link mit den zu dem Zeitpunkt in den Variablen befindlichen Werten erstellt wird. Und der einzige Zeitpunkt, zu dem du den Link so erstellen kannst, ist direkt beim rendern der Page... Wofür braucht es da die Dynamik von Javascript?

Ich schätze du willst, dass der User etwas auf einer Karte plaziert, und dann dessen Koordinaten an dein php Script übergeben werden?

Mach doch einen Link im Stil von: <a href="javascript:deine_funktion();">Klick mich</a>

deine_funktion()
{
document.location.href = "dein-php-script.php?adresse=" ....
}

Oder alternativ kannst du's auch per Ajax im Hintergrund speichern.
 
Zuletzt bearbeitet:
Sieh dir mal jQuery an, da gibt es schon eine einfache Ajax-Integration.
Code:
$.ajax( {
  url: 'test.php',
  data: {
    name1: 'wert1',
    name2: 'wert2',
    name3: 'wert3'
  }
} );
Das leitest du einfach auf ein Script deiner Wahl und schon kannst du die Sachen eintragen, bspw. mittels einem onclick-Event eines Buttons.
 
Benutzt du firefox mitsamt firebug zum debuging? (oder was ähnliches)

Wenn nein, dann besorgs dir.
Und dann prüfe mal per console.log() die variablen die du übergeben willst. Die scheinen ja null zu sein.

Ansonsten ist Ajax das Zauberwort, wenn per Javascript PHP ausführen lassen willst. Und jQuery kann ich dir auch nur empfehlen!
 
Selbst wenn sein Link so im HTML stehen würde:

<a href="1_logic.php?adresse=&latitude=&longitude=">weiter.../a>

mit anderen Worten, sämtliche GET parameter ungesetzt wären, sollte PHP keinen "undefined index" Fehler bringen. Die Variablen wären zwar leer, aber gesetzt.

Daher schätze ich, sein Link stimmt überhaupt nicht und es fehlen sämtliche GET argumente.
 
Ich schätze du willst, dass der User etwas auf einer Karte plaziert, und dann dessen Koordinaten an dein php Script übergeben werden?
Genau so ist es. Der User gibt ein Standort an - und Google Maps liefert die Geokoordinaten aus und zeigt diese auf einer Karte an. Diese Geokoordinaten sollen an den php Script (1_logic.php) übergeben werden und dort in die MySQL DB geschrieben werden.


Schon mal danke an die vielen Ratschläge - ich muss nun leider zur Arbeit...
Werde heute Abend ab 20:00Uhr mich direkt an die Umsetzung eurer Tipps begeben :)

dann gibts auch neue info's
 
also ich kann mir deinen fehler nicht erklären...
habs grad eben mal zu testzwecken nachgebaut...
funktioniert prima
 
VipE schrieb:
HTML:
document.write('<a href="1_logic.php?adresse=' + adresse + '&latitude=' + latitude + '&longitude=' + longitude + '">weiter.../a>');

Fehlt da beim /a nicht ein < davor?
 
ersetz mal bitte dein
Code:
document.write('<a href="1_logic.php?adresse=' + adresse + '&latitude=' + latitude + '&longitude=' + longitude + '">weiter.../a>');

mit

Code:
var url = "1_logic.php?adresse=" + adresse + "&latitude=" + latitude + "&longitude=" + longitude;
document.write("<a href=" + url + ">weiter...</a>");

sollte eigentlich keinen unterschied machen aber vllt funktionierts ja dann

@Daaron doch fehlt aber sollte keinen unterschied machen wenn das script trotzdem durchläuft
steht hald statt weiter... weiter.../a> da

aber die funktion des scripts wird nicht beeinträchtigt
 
Zuletzt bearbeitet:
Im Endeffekt läufts eh drauf raus, mit einem der Frameworks zu arbeiten und das alles über AJAX zu lösen.
Mootools Request wäre z.B. eine Lösung.
 
@Daaron ... würd sagen das die auf den umfang des projekts drauf ankommt
wenn er z.B. nicht viel mehr vor hat das muss er nicht zwangsläuft AJAX o. Ä.

@Blitzmerker
o.O mir garned aufgefallen...
aber es sollte ohne auch funktionieren..schaut hald ned schön aus
 
Du tust ja fast so, als wäre AJAX jetzt sonstwie komplex. Im Endeffekt ist es aber einfach nur ne hübsche und vor allem blockierungsfreie Methode, um Krams auszuführen.
 
AJAX ist mitnichten kompliziert...

wenn er jedoch nur diesen einen link hat würd ichs mir trotzdem sparen...
 
wie gesagt ich habe nicht viel Erfahrung mit JavaScript.

So wie es aussieht, wird die URL gar nich richtig zusammen gestellt. :/
Also beim Aufruf der "1_logic.php" ist kein "?adresse=WERT&latitude=WERT" etc. angehängt...

Ich bin leider schon zu müde um klar nachzudenken, war ein harter Arbeitstag - werd mir dann morgen die Methode mit Ajax anschauen (hoffentlich ist das leichter zu verstehen als JavaScript)^^
 
AJAX ist JavaScript... Asynchronous JavaScript and XML -> du rufst damit asynchron eine bestimmte Quelle auf und wertest ihre Antwort (XML, JSON,...) aus.
 
Zurück
Oben