Итак, я знаю, что Javascript является клиентской, а PHP - серверной, что усложняет, но мне интересно, как это сделать.Передача массива Javascript в файл PHP
У меня есть массив в моем javascript-коде (в файле HTML), и когда пользователь нажимает на кнопку отправки, я хочу, чтобы страница передавала этот массив на мою страницу PHP, которая затем примет эту дату и помещает ее в База данных SQL.
Есть ли простой способ сделать это? Мой массив объявлен следующим образом: var markers = [];
- это просто переменная в части кода javascript.
Я смотрел на кучу других сообщений, касающихся этого, но все решения не соответствуют тому, что мне нужно делать, или требуют слишком большого количества изменений для того, что я могу сделать прямо сейчас. Я не очень хорошо знаком с AJAX или JSON (точно не знаю, что это такое).
Мой браузер:
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 даже хотя я знаю, что в массиве есть элементы, это заставляет меня думать, что массив не передается.
ну тогда вам следует ознакомиться с AJAX. Это единственный способ сделать это ... –
Довольно точно, единственный способ сделать это - с каким-то решением ajax. jQuery делает это очень легко, если у вас есть какой-либо опыт в этом. – dmikester1