Member 13953707 Ответов: 0

Как получить доступ к этой переменной в 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

0 Ответов