我知道JavaScript是客户端的,而PHP是服务器端的,这让事情变得复杂,但我想知道如何做到这一点。
我在我的JavaScript代码中(在HTML文件中)有一个数组,当用户点击我的提交按钮时,我希望页面将该数组发送到我的PHP页面,然后将该日期放入SQL数据库中。
有没有一种简单的方法可以实现这个目标?我的数组像这样声明:
我已经查看了许多其他帖子,但所有解决方案都不适合我需要做的事情,或者需要太多的更改,而我现在能做的并不多。我不太熟悉AJAX或JSON(不确定那究竟是什么)。
我的JavaScript代码如下:
在我的portal.php文件中,我有以下内容:
我在我的JavaScript代码中(在HTML文件中)有一个数组,当用户点击我的提交按钮时,我希望页面将该数组发送到我的PHP页面,然后将该日期放入SQL数据库中。
有没有一种简单的方法可以实现这个目标?我的数组像这样声明:
var markers = [];
它只是代码中JavaScript部分的一个变量。我已经查看了许多其他帖子,但所有解决方案都不适合我需要做的事情,或者需要太多的更改,而我现在能做的并不多。我不太熟悉AJAX或JSON(不确定那究竟是什么)。
我的JavaScript代码如下:
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);
});
}
我的HTML代码是:
<form action="portal.php" method="post" id="theform">
<input type="hidden" id="markers" name="markers">
<button>Submit</button>
</form>
在我的portal.php文件中,我有以下内容:
$markers = json_decode($_POST['markers']);
echo $markers;
尽管我知道数组中有元素,但php页面上没有任何输出,这让我认为数组没有被传递过来。