![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 2.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Od kilku dni próbuję napisać formularz do wyszukiwania adresów. Bazę adresową pobrałem z portalu http://www.stat.gov.pl/broker/access/index.jspa i przeniosłem ją do bazy sql. konkretnie z tego linku: http://www.stat.gov.pl/broker/access/prefi...stPreFiles.jspa Z góry przepraszam za te tony kodu, ale będę wdzięczny za wszelkie podpowiedzi co zmienić aby skrypt działał sprawniej/szybciej. Na razie skrypty działają tak, że po uzupełnieniu województwa działa autozupełnianie pola z powiatem. Po wybraniu pola z powiatem działa autouzupełnianie pola z gminą itd. Zależy mi na tym, aby uzupełnianie działało nie tylko w skokach o 1 pole, ale także aby można było po wpisaniu województwa wyszukać od razu miejscowość. Samo napisanie selectu aby pobrać wszystkie miejscowości w danych województwie nie sprawi mi większego problemu, ale nie wiem jak przy wpisywaniu miejscowości pobrać miejscowość + gminę + powiat, potem w autouzupełnianiu wyświetlić te dane np. w formacie: "miejscowość (gmina: blabla, powiat: blabla) i później przy wyborze takiego itemu z rozwijanej listy "rozrzucić" te dane na inputy z powiatem, gminą i miejscowością. Fragment kodu strony: Kod <table border="1"> <tr><td>wojewodztwo: <input id="wojewodztwo" type="text" form="forma"/> </td> <td>Powiat: <input id="powiat" type="text" form="forma"/> </td> <td>Gmina: <input id="gmina" type="text" form="forma"/> </td> <td>Miejscowość: <input id="miejscowosc" type="text" form="forma"/> </td> <td>Ulica: <input id="ulica" type="text" form="forma"/> </td> <td>Dzielnica: <input id="dzielnica" type="text" form="forma"/></td> </tr> <table> Skrypt JS do pobierania danych: Kod jQuery(document).keyup(function(){ $('#wojewodztwo').autocomplete({source:'formatka_szukajwojewodztwo.php'}); }); $(document).keyup(function() { $('#powiat').autocomplete({ source: function(request, response) { $.ajax({ url: 'formatka_szukajpowiat.php', dataType: "json", data: { wojewodztwo : $("#wojewodztwo").val(), term : request.term }, success: function(data) { response(data); } }); }, min_length: 1 }); } ); $(document).keyup(function() { $('#gmina').autocomplete({ source: function(request, response) { $.ajax({ url: 'formatka_szukajgmina.php', dataType: "json", data: { wojewodztwo : $("#wojewodztwo").val(), powiat : $("#powiat").val(), term : request.term }, success: function(data) { response(data); } }); }, min_length: 1 }); } ); $(document).keyup(function() { $('#miejscowosc').autocomplete({ source: function(request, response) { $.ajax({ url: 'formatka_szukajmiejscowosc.php', dataType: "json", data: { wojewodztwo : $("#wojewodztwo").val(), powiat : $("#powiat").val(), gmina : $("#gmina").val(), term : request.term }, success: function(data) { response(data); } }); }, min_length: 1 }); } ); $(document).keyup(function() { $('#ulica').autocomplete({ source: function(request, response) { $.ajax({ url: 'formatka_szukajulica.php', dataType: "json", data: { wojewodztwo : $("#wojewodztwo").val(), powiat : $("#powiat").val(), gmina : $("#gmina").val(), miejscowosc : $("#miejscowosc").val(), term : request.term }, success: function(data) { response(data); } }); }, min_length: 1 }); } ); $(document).keyup(function() { $('#dzielnica').autocomplete({ source: function(request, response) { $.ajax({ url: 'formatka_szukajdzielnica.php', dataType: "json", data: { wojewodztwo : $("#wojewodztwo").val(), powiat : $("#powiat").val(), gmina : $("#gmina").val(), miejscowosc : $("#miejscowosc").val(), term : request.term }, success: function(data) { response(data); } }); }, min_length: 1 }); } ); Pobieranie województwa: Kod //połączenie z bazą $rs = mysql_query('select NAZWA from terc where `NAZWA` LIKE "%'. mysql_real_escape_string($_REQUEST['term']) .'%" AND POW = \'\' order by NAZWA asc limit 0,30', $dblink); $data = array(); if ( $rs && mysql_num_rows($rs) ) { while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) ) { $data[] = array( 'label' => $row['NAZWA'] , 'value' => $row['NAZWA'] ); } } echo json_encode($data); flush(); Pobranie powiatu Kod //połączenie z bazą $idwoj = $_GET['wojewodztwo']; $zapytanie = "SELECT WOJ FROM `terc` WHERE NAZWA='$idwoj'"; $idzapytania = mysql_query($zapytanie); while ($wiersz = mysql_fetch_row($idzapytania)) { $idwoj = $wiersz[0]; } $rs = mysql_query('select NAZWA from terc where NAZWA like "%'. mysql_real_escape_string($_REQUEST['term']) .'%" AND `WOJ` = \''. $idwoj .'\' AND (`NAZDOD` = \'powiat\' OR `NAZDOD` = \'miasto na prawach powiatu\') order by NAZWA asc limit 0,30', $dblink); //$rs = mysql_query('SELECT NAZWA FROM `terc` WHERE NAZWA like "%'. mysql_real_escape_string($_REQUEST['term']) .'%" LIMIT 30', $dblink); $data = array(); if ( $rs && mysql_num_rows($rs) ) { while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) ) { $data[] = array( 'label' => $row['NAZWA'], 'value' => $row['NAZWA'] ); } } else { $data[] = array( 'label' => 'brak wynikow', 'value' => 'brak wynikow' ); } echo json_encode($data); flush(); Pobieranie gminy: Kod //połączenie z bazą $idwoj = $_GET['wojewodztwo']; $idpow = $_GET['powiat']; $zapytanie = "SELECT WOJ FROM `terc` WHERE NAZWA='$idwoj'"; $idzapytania = mysql_query($zapytanie); while ($wiersz = mysql_fetch_row($idzapytania)) { $idwoj = $wiersz[0]; } $zapytanie = "SELECT POW FROM `terc` WHERE NAZWA='$idpow' AND WOJ='$idwoj'"; $idzapytania = mysql_query($zapytanie); while ($wiersz = mysql_fetch_row($idzapytania)) { $idpow = $wiersz[0]; } $rs = mysql_query('select NAZWA from terc where NAZWA like "%'. mysql_real_escape_string($_REQUEST['term']) .'%" AND `WOJ` = \''. $idwoj .'\' AND `POW` = \''. $idpow .'\' AND `NAZDOD` like "%gmina%" order by NAZWA asc limit 0,30', $dblink); //$rs = mysql_query('SELECT NAZWA FROM `terc` WHERE NAZWA like "%'. mysql_real_escape_string($_REQUEST['term']) .'%" LIMIT 30', $dblink); $data = array(); if ( $rs && mysql_num_rows($rs) ) { while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) ) { $data[] = array( 'label' => $row['NAZWA'], 'value' => $row['NAZWA'] ); } } else { $data[] = array( 'label' => 'brak wynikow', 'value' => 'brak wynikow' ); } echo json_encode($data); flush(); Pobieranie miejscowości: Kod //połączenie z bazą $idwoj = $_GET['wojewodztwo']; $idpow = $_GET['powiat']; $idgmi = $_GET['gmina']; $zapytanie = "SELECT WOJ FROM `terc` WHERE NAZWA='$idwoj'"; $idzapytania = mysql_query($zapytanie); while ($wiersz = mysql_fetch_row($idzapytania)) { $idwoj = $wiersz[0]; } $zapytanie = "SELECT POW FROM `terc` WHERE NAZWA='$idpow' AND WOJ='$idwoj'"; $idzapytania = mysql_query($zapytanie); while ($wiersz = mysql_fetch_row($idzapytania)) { $idpow = $wiersz[0]; } $zapytanie = "SELECT GMI FROM `terc` WHERE NAZWA='$idgmi' AND WOJ='$idwoj' AND POW='$idpow'"; $idzapytania = mysql_query($zapytanie); while ($wiersz = mysql_fetch_row($idzapytania)) { $idgmi = $wiersz[0]; } $rs = mysql_query('select NAZWA from simc where NAZWA like "%'. mysql_real_escape_string($_REQUEST['term']) .'%" AND `WOJ` = \''. $idwoj .'\' AND `POW` = \''. $idpow .'\' AND `GMI` = \''. $idgmi .'\' AND (`RM` = \'96\' OR `RM` = \'04\' OR `RM` = \'01\') order by NAZWA asc limit 0,30', $dblink); //$rs = mysql_query('SELECT NAZWA FROM `terc` WHERE NAZWA like "%'. mysql_real_escape_string($_REQUEST['term']) .'%" LIMIT 30', $dblink); $data = array(); if ( $rs && mysql_num_rows($rs) ) { while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) ) { $data[] = array( 'label' => $row['NAZWA'], 'value' => $row['NAZWA'] ); } } else { $data[] = array( 'label' => 'brak wynikow', 'value' => 'brak wynikow' ); } echo json_encode($data); flush(); struktura bazy danych wygląda tak samo jak w plikach xml dostępnych na stronie którą podałem wyżej. Z góry dziękuję za wszelkie podpowiedzi/ pomysły. Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 11:17 |