PHP XML для Карт Google InfoWindow

Я пытаюсь сделать следующее из моих карт Google. Я знаю с JavaScript, что это клиентская сторона, а не серверная, как PHP, поэтому она загружается до запуска JS. Проблема в том, что если бы я должен был вызвать столбец post_id строго через PHP -> XML -> JS в PHP, он не загрузил бы ссылку. Есть ли способ сделать это со строго PHP и заставить его вытащить позиции post_id из таблицы маркеров для каждого маркера местоположения на карте? Я также читал, что это возможно с AJAX, но у меня нет много знаний об AJAX.

boxText.innerHTML = "<div class='mapname'>" + '<a href="<?php echo get_permalink( $post_id ); ?>">' + name + '</a>' + "</div><i>" + listtype + "</i> <br/>" + address + "<br/>" + phone; 

Благодаря!

Вот полный пример PHP-Javascript AJAX. Просто сохраните файл с именем «myServerScript.php» и укажите на него свой браузер. PHP печатает javascript, который вызывает тот же скрипт PHP через AJAX, PHP отвечает, а javascript обрабатывает ответ.

Убедитесь, что ваша установка PHP настроена на принятие коротких разделителей <?...?>

 <? if(isset($_GET['msg'])){ print "alert('AJAX response from PHP - Javascript said:". $_GET['msg']."')"; } else{ print <<<qq <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>AJAX Example: (by Marcelo)</title> <script src="http://maps.google.com/maps/api/js?sensor=false"></script> <script> // Sorry, I can't be bothered typing "google.maps." every time. ;-) var G = google.maps; var zoom = 4; var centerPoint = new G.LatLng(40.178873, -96.767578); var container; var map; function ajaxLoad(url,callback,plain) { var http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari, ... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType && plain) { http_request.overrideMimeType('text/plain'); } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Giving up :( Cannot create an XMLHTTP instance'); return false; } http_request.onreadystatechange = function() { if (http_request.readyState == 4) { if (http_request.status == 200) { eval(callback(http_request)); } else { alert('Request Failed: ' + http_request.status); } } }; http_request.open('GET', url, true); http_request.send(null); } var url = "myServerScript.php?msg=hello from javascrpt"; ajaxLoad(url, parseResults, true); function parseResults(req){ var text = req.responseText; eval(text); } function load() { container = document.getElementById('mapDiv'); var myOptions = { zoom: zoom, center: centerPoint, mapTypeId: G.MapTypeId.ROADMAP, rotateControl: true, keyboardShortcuts:false } map = new G.Map(container, myOptions); google.maps.event.addListener(map,'click',function(mev){ var url = "myServerScript.php?msg="+mev.latLng; ajaxLoad(url, parseResults, true); }); } window.onload = load; </script> </head> <body> Hello from PHP. <h2>Click on the map to send the lat/lon to PHP</h2> <div id="mapDiv" style="width: 800px; height: 450px;"></div> </body> </html> qq; } ?> быстрые <? if(isset($_GET['msg'])){ print "alert('AJAX response from PHP - Javascript said:". $_GET['msg']."')"; } else{ print <<<qq <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>AJAX Example: (by Marcelo)</title> <script src="http://maps.google.com/maps/api/js?sensor=false"></script> <script> // Sorry, I can't be bothered typing "google.maps." every time. ;-) var G = google.maps; var zoom = 4; var centerPoint = new G.LatLng(40.178873, -96.767578); var container; var map; function ajaxLoad(url,callback,plain) { var http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari, ... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType && plain) { http_request.overrideMimeType('text/plain'); } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Giving up :( Cannot create an XMLHTTP instance'); return false; } http_request.onreadystatechange = function() { if (http_request.readyState == 4) { if (http_request.status == 200) { eval(callback(http_request)); } else { alert('Request Failed: ' + http_request.status); } } }; http_request.open('GET', url, true); http_request.send(null); } var url = "myServerScript.php?msg=hello from javascrpt"; ajaxLoad(url, parseResults, true); function parseResults(req){ var text = req.responseText; eval(text); } function load() { container = document.getElementById('mapDiv'); var myOptions = { zoom: zoom, center: centerPoint, mapTypeId: G.MapTypeId.ROADMAP, rotateControl: true, keyboardShortcuts:false } map = new G.Map(container, myOptions); google.maps.event.addListener(map,'click',function(mev){ var url = "myServerScript.php?msg="+mev.latLng; ajaxLoad(url, parseResults, true); }); } window.onload = load; </script> </head> <body> Hello from PHP. <h2>Click on the map to send the lat/lon to PHP</h2> <div id="mapDiv" style="width: 800px; height: 450px;"></div> </body> </html> qq; } ?> 

Живая версия здесь