Tak wygląda plik z wyświetlaniem powyszukiwaniu.
wyniki.php
<?php require_once "../maincore.php"; require_once THEMES."templates/header.php"; //$con=mysql_connect('localhost','brzanek_brzanek','dj4403dj'); //$con= new mysqli('localhost','brzanek_brzanek','dj4403dj'); require('db.php'); //Otwiera połączenie z serwerem baz danych MySQL if (!$connection) { } //Wybiera bazę danych z serwera if (!$db_selected) { } ?> <!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>Google Maps JavaScript API v3 - Twoja pierwsza mapa</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body onLoad="load()"> <div class=" theme-showcase" role="main"> <br> <div> <h2>Raporty pogodowe dla województwa Zachodniopomorskiego</h2> <p>Na mapie znajdują się miejsca gdzie od kilkudziesięciu lat występowały grożne zjawiska pogodowe na terenie woj. Zachodniopomorskiego.</p> </div> <br> <!-- Main jumbotron for a primary marketing message or call to action --> <div id="map" style="width: 100%; height: 400px; align: center;" class="img-responsive" alt="Responsive image"></div> <div class="row"> <div class="col-md-12"> <h2>Wyszukiwanie raportów o zagrożeniach pogodowych</h2> <form action="wyniki.php" method="post"> Wyszukaj według: <select name="metoda"> <option value="data" />Data (0000-00-00) <option value="miasto" />Nazwa miejscowości <option value="powiat" />Nazwa powiatu <option value="nazwa" />Rodzaj (Wyładowania, Grad, Tornado itp.) </select> Szukane wyrażenie: <input type="text" name="wyrazenie" /> <input type="submit" name="wyszukaj" /> </form> </div> </div> <br> <?php $metoda = $_POST['metoda']; $wyrazenie = $_POST['wyrazenie']; if (!$metoda || !$wyrazenie) { exit; } { } @ $db = new mysqli('localhost','login','haslo','nazwa_bazy'); if (mysqli_connect_errno()) { exit; } $db->query('SET NAMES utf8'); $db->query('SET CHARACTER_SET utf8_unicode_ci'); $zapytanie = "select * from google_maps where ".$metoda. " like '%".$wyrazenie."%' AND publicznie='tak' ORDER BY id DESC"; $wynik = $db->query($zapytanie); $ile_znaleziono = $wynik->num_rows; echo '<div class="row"> <div class="col-md-12"> <table class="table"> <thead> <tr> <th>#</th> <th>Data</th> <th>Miejscowość</th> <th>Powiat</th> <th>Rodzaj zagrożenia</th> <th>Lat</th> <th>Lng</th> <th>Potwierdzenie</th> </tr> </thead> <tbody> '; for ($i=0;$i<$ile_znaleziono;$i++) { $wiersz = $wynik->fetch_assoc(); } $wynik->free(); $db->close(); echo '</tbody> </table> </div> </div>'; ?> </div> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false&key=AIzaSyBpfa8ASzbAvkUD3HNgmIHBuPAqsAxSKRk"></script> <script type="text/javascript"> //Baza ikonek do oznaczenia miejsc wedle typu var ikonki = { tornado: { icon: 'tornado.png', shadow: 'tornado.png' }, grad: { icon: 'hail.png', shadow: 'hail.png' }, funnel: { icon: 'funnel.png', shadow: 'funnel.png' }, deszcz: { icon: 'rain.png', shadow: 'rain.png' }, wiatr: { icon: 'wind.png', shadow: 'wind.png' }, wyladowania: { icon: 'lightning.png', shadow: 'lightning.png' } }; //Ładuje znaczniki na mapę function load() { //Ustawia środek mapy w wybranej pozycji, ustawia zoom mapy i jej typ - w tym przypadku wskazuje na Sosnowiec var map = new google.maps.Map(document.getElementById("map"), { center: new google.maps.LatLng(53.634753, 15.675833), zoom: 8, mapTypeId: 'roadmap' }); var dymekInfo = new google.maps.InfoWindow; //Pobiera nazwę pliku generującego XML pobierzAdres("wynikiXML.php", function(data) { var xml = parseXml(data); //Zczytuje dane z pliku XML var znaczniki = xml.documentElement.getElementsByTagName("znacznik"); for (var i = 0; i < znaczniki.length; i++) { var nazwa = znaczniki[i].getAttribute("nazwa"); var data = znaczniki[i].getAttribute("data"); var miasto = znaczniki[i].getAttribute("miasto"); var ikona = znaczniki[i].getAttribute("ikona"); var wspolrzedne = new google.maps.LatLng( parseFloat(znaczniki[i].getAttribute("lat")), parseFloat(znaczniki[i].getAttribute("lng"))); //Buduje strukturę wyświetlanego elementu var html = "<b>" + nazwa + " Data: " + data + " <br />" + miasto; var ikona = ikonki[ikona] || {}; var znacznik = new google.maps.Marker({ map: map, position: wspolrzedne, icon: ikona.icon, shadow: ikona.shadow }); laczenieDanych(znacznik, map, dymekInfo, html); } }); } //Funkcja wiążąca znaczniki z mapą function laczenieDanych(znacznik, map, dymekInfo, html) { google.maps.event.addListener(znacznik, 'click', function() { dymekInfo.setContent(html); dymekInfo.open(map, znacznik); }); } //Wywołanie połączenia za pomocą AJAXa function pobierzAdres(url, callback) { var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest; request.onreadystatechange = function() { if (request.readyState == 4) { request.onreadystatechange = nicNieRob(); callback(request.responseText, request.status); } }; request.open('GET', url, true); request.send(null); } //Funkcja parsująca XML function parseXml(str) { if (window.ActiveXObject) { var doc = new ActiveXObject('Microsoft.XMLDOM'); doc.loadXML(str); return doc; } else if (window.DOMParser) { return (new DOMParser).parseFromString(str, 'text/xml'); } } function nicNieRob() {} </script> </body> </html> <?php require_once THEMES."templates/footer.php"; ?>
W pliku wyniki.php jest też kod formularza. Proszę o wskazuwki co jest nie tak.
Przetestować można na stronie http://pogoda-zachodniopomorskie.pl/zjawiska_mapa/index.php
wynikiXML.php
<?php require('db.php'); //Funkcja parsująca znaki do standardu ASCII, który jest potrzebny dla pliku XML. To też jest zabezpieczenie przed próbą wpisania kodu wykonującego. function parseToXML($htmlStr) { return $xmlStr; } $metoda = $_POST['metoda']; $wyrazenie = $_POST['wyrazenie']; if (!$metoda || !$wyrazenie) { exit; } { } //Otwiera połączenie z serwerem baz danych MySQL if (!$connection) { } //Wybiera bazę danych z serwera if (!$db_selected) { } //Pobieranie znacznika z tabeli. Dane są pobierane pojedynczo. $query = "SELECT * FROM google_maps WHERE '".$metoda."' like '%".$wyrazenie."%' AND publicznie='tak'"; if (!$result) { } //Tworzy plik XML //Tworzy kolejne, pojedyncze wpisy do pliku XML //Dodawanie atrybutów do znacznika } //Zamyka plik XML ?>