Как получить доступ к этой переменной в Google maps API?
У меня есть веб-приложение google maps для игры, где пользователь нажимает на маркер google map, делает выбор в появившемся окне и нажимает кнопку Отправить. Он использует AJAX для обновления базы данных с помощью информации, выбранной пользователем. База данных предварительно заполняется названиями маркеров и GPS-координатами, которые загружаются. Маркеры также помещаются соответствующим образом при загрузке через XML.
У меня возникли проблемы с обновлением одной строки в моей БД под названием quest с выбранной пользователем информацией при ее отправке. В настоящее время пользователь может выбрать маркер и отправить задание, но он вообще не обновит базу данных.
Вот что происходит при нажатии кнопки Отправить
if (document.getElementById("questType").value == "quest1") { //if quest1 is selected upon submission alert("quest1"); var markerName; var questName = "Quest 1"; xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", "ajax.php?questName=" + questName + "&markerName=" + markerName, true); xmlhttp.send(); //Sending the request to the server
Вот мой ajax.php
<?php include("connect.php"); require("call2.php"); $markerName = mysqli_real_escape_string($con, $_GET['markerName']); $questName = mysqli_real_escape_string($con, $_GET['questName']); $stmt = $con->prepare("UPDATE markers SET quest = $questName WHERE markerName = $markerName"); $stmt->bind_param($questName, $markerName); $stmt->execute(); $stmt->close(); ?>
Вот мой файл вызова, а также
$dom = new DOMDocument("1.0"); $node = $dom->createElement("markers"); $parnode = $dom->appendChild($node); include('connect.php'); $query = "SELECT * FROM markers WHERE 1"; // Select all the rows in the markers table $result = mysqli_query($con, $query); if (!$result) { die('Invalid query: ' . mysqli_error($con)); } // Iterate through the rows, adding XML nodes for each while ($row = mysqli_fetch_assoc($result)) { global $dom, $node, $parnode; $node = $dom->createElement("marker"); $newnode = $parnode->appendChild($node); $newnode->setAttribute("markerName", $row['markerName']); $newnode->setAttribute("quest", $row['quest']); $newnode->setAttribute("lat", $row['lat']); $newnode->setAttribute("longg", $row['longg']); } header("Content-type: text/xml"); echo $dom->saveXML();
Извините, если это много, я думаю, что проблема в том, что я не присваиваю значение markerName. Я не получаю никаких ошибок, однако, когда я наведу курсор мыши на ajaxphp на вкладке network в chrome, он выглядит так, как будто получает имя questName, но markerName остается не определено.
Вот куда я загружаю вещи
downloadUrl("call2.php", function(data) { var xml = data.responseXML; var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++) { var name = markers[i].getAttribute("markerName"); //<------ here's where it's getting markerName // var address = markers[i].getAttribute("address"); var type = markers[i].getAttribute("type"); var point = new google.maps.LatLng( parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("longg"))); var icon = customLabel[type] || {}; var marker = new google.maps.Marker({ map: map, position: point, icon: icon.icon, shadow: icon.shadow }); bindInfoWindow(marker, map, infoWindow, html); } });
Я думаю, что мне нужно найти способ доступа к имени, но я не уверен, как это сделать, когда оно локально для функции, которая загружает XML-файл.
Что я уже пробовал:
Отладка с помощью chrome, использование netbeans