Advertisement
demetriusPop

XML Map

Dec 28th, 2013
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. /*
  4.  
  5. Template Name: myTemp
  6.  
  7. */
  8.  
  9.  
  10.  
  11. get_header();
  12.  
  13. /* >>>>>>>>>>>>>>>>>>>>>>>>>>>>> check form submission */
  14. if(isset($_POST['address']) && $_POST['address'] != '' && (isset($_POST['city'])) && $_POST['city'] != '') {
  15. $user_search = esc_attr($_POST['city']);
  16.  
  17. global $wpdb;
  18.  
  19. $wpdb->show_errors();
  20. //global $user_search;
  21.  
  22.  
  23. /* >>>>>>>>>>>>>>>>>>>>>>>>>>>>> XML creation */
  24. $dom = new DOMDocument("1.0");
  25. $node = $dom->createElement($wpdb->prefix.'address_table');
  26. $parnode = $dom->appendChild($node);
  27.  
  28. /* >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Read and Get From Table */
  29. $query = $wpdb->get_col( $wpdb->prepare('SELECT json FROM '.$wpdb->prefix.'address_table WHERE city = %s', $user_search ) );
  30.  
  31. ?>
  32.  
  33. <pre><?php
  34. //var_dump( $query );
  35. ?>
  36. </pre>
  37. <?php
  38. $result = array();
  39. ?>
  40. <ul style="float:right;">
  41. <?php
  42. $node = $dom->createElement("marker");
  43. $newnode = $parnode->appendChild($node);
  44.  
  45. foreach($query as $single_query) {
  46.  
  47. $data = json_decode($single_query);
  48. ?>
  49. <li style="list-style:none;">
  50. <?php
  51. // ADD TO XML DOCUMENT NODE
  52.  
  53. $newnode->setAttribute("lat", $data->results[0]->geometry->location->lat);
  54. $newnode->setAttribute("lng", $data->results[0]->geometry->location->lng);
  55.  
  56. echo $dom->saveXML($newnode);
  57.  
  58. ?>
  59. </li>
  60. <?php
  61.  
  62. } // end foreach
  63.  
  64. ?>
  65. </ul>
  66. <?php
  67.  
  68. } // endif
  69.  
  70. ?>
  71. <div id="map" style="width:350px; height:300px; margin-bottom:10px;"></div>
  72.  
  73. <script>
  74. //<![CDATA[
  75. function load() {
  76. var map = new google.maps.Map(document.getElementById("map"), {
  77. center: new google.maps.LatLng("lat", "lng"),
  78. zoom: 8,
  79. mapTypeId: 'roadmap'
  80. });
  81. var infoWindow = new google.maps.InfoWindow;
  82.  
  83. // Change this depending on the name of your PHP file
  84. downloadUrl("", function(data) {
  85. var xml = data.responseXML;
  86. // for each row of coords, iterate into point var below
  87. var markers = xml.documentElement.getElementsByTagName("marker");
  88. for (var i = 0; i < markers.length; i++) {
  89.  
  90.  
  91.  
  92. var point = new google.maps.LatLng(
  93. parseFloat(markers[i].getAttribute("lat")),
  94. parseFloat(markers[i].getAttribute("lng")));
  95. var html = "<b>" + "hi there" + "</b> <br/>" ;
  96.  
  97. var marker = new google.maps.Marker({
  98. map: map,
  99. position: new google.maps.LatLng("lat", "lng")
  100. });
  101. bindInfoWindow(marker, map, infoWindow, html);
  102. }
  103. });
  104. }
  105.  
  106. function bindInfoWindow(marker, map, infoWindow, html) {
  107. google.maps.event.addListener(marker, 'click', function() {
  108. infoWindow.setContent(html);
  109. infoWindow.open(map, marker);
  110. });
  111. }
  112.  
  113. function downloadUrl(url, callback) {
  114. var request = window.ActiveXObject ?
  115. new ActiveXObject('Microsoft.XMLHTTP') :
  116. new XMLHttpRequest;
  117.  
  118. request.onreadystatechange = function() {
  119. if (request.readyState == 4) {
  120. request.onreadystatechange = doNothing;
  121. callback(request, request.status);
  122. }
  123. };
  124.  
  125. request.open('GET', url, true);
  126. request.send(null);
  127. }
  128.  
  129. function doNothing() {}
  130. //]]>
  131.  
  132. google.maps.event.addDomListener(window, 'load', load);
  133. </script>
  134. <form method="post" action="" id="insertForm" name="insertForm">
  135. <input type="text" value="" placeholder="enter city" id="city" name="city">
  136. <input type="text" value="" placeholder="enter full address" id="address" name="address">
  137. <input type="submit" value="search">
  138. </form>
  139. <?php
  140.  
  141. get_footer();
  142.  
  143. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement