Passing Javascript Array zu PHP-Datei [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Wie werden JavaScript-Variablen an PHP übergeben? 12 answersEin JavaScript-Wert an eine PHP-Variable übergeben (mit Einschränkungen) 3 answers

So weiß ich, dass Javascript clientseitig und PHP serverseitig ist und das erschwert die Sache, aber ich frage mich, wie ich das machen soll.

Ich habe ein Array in meinem Javascript-Code (in einer HTML-Datei), und wenn der Benutzer auf die Schaltfläche zum Senden klickt, soll die Seite dieses Array an meine PHP-Seite senden, die dieses Datum übernimmt und es in eine SQL-Datenbank überträgt.

Gibt es einen einfachen Weg, dies zu tun? Mein Array wird folgendermaßen deklariert:var markers = []; es ist nur eine Variable im Javascript-Teil des Codes.

Ich habe mir eine Reihe anderer Beiträge dazu angesehen, aber alle Lösungen passen nicht zu dem, was ich tun muss, oder erfordern eine viel zu große Änderung für das, was ich jetzt tun kann. Ich kenne AJAX oder JSON nicht wirklich (weiß nicht genau, was das ist).

Mein Javascript ist:

var markers = [];

function placeMarker(location) {
        var clickedLocation = new google.maps.LatLng(location);
        var name = document.getElementById("checkname").value;
        var description = document.getElementById("description").value;


        var marker = new google.maps.Marker({
            position: location,
            map: map,
            title: name,
            // This may cause a problem when reloading and editing an existing tour
            // url was found at: http://biostall.com/adding-number-or-letters-to-google-maps-api-markers
            icon: 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=' + markerId + '|FE6256|000000'
        });

        marker.setMap(map);
        markers.push([markerId, name, marker.getPosition().lat(), marker.getPosition().lng(), description]);
        //alert("" + markers);
        markerId = markerId + 1;
    }

    google.maps.event.addListener(map, 'click', function(event) {
        placeMarker(event.latLng);
    });

    google.maps.event.addListener(marker, "click", function() {
        map.removeOverlay(marker);
        marker.setMap(map);
    });
} 

window.onload = function() {
    var form = document.getElementById('theform');
    form.addEventListener('submit', function(){
        var markersField = document.getElementById('markers');
        markersField.value = JSON.stringify(markers);
    });
}

Mein HTML ist:

<form action="portal.php" method="post" id="theform">
    <input type="hidden" id="markers" name="markers">
    <button>Submit</button>
</form>

In meiner portal.php Datei habe ich:

$markers = json_decode($_POST['markers']);
echo $markers;

Nichts wird auf der PHP-Seite ausgedruckt, obwohl ich weiß, dass das Array Elemente enthält. Dies lässt mich glauben, dass das Array nicht übergangen wird.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage