![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
witam
z wczesniejszych moich tematow otrzymalem wzor pewnego kodu zaleznych od siebie selectow http://turson.pl/blog/dynamiczne-zalezne-selecty/ Kod przerobilem. Niestety cos nie dziala w drugiej liscie. Druga lista powinna pokazywac nr-y pokoji przypisanych do ulicy wybranej w pierwszym slelecie. W moim przypadku pomimo wybraniu jakielkowiek pierwszej opcji w drugiej liscie pojawiaja sie wszystkie pokoje, ponizej kod Kod <?php // POŁĄCZENIE Z BAZĄ DANYCH $db = new PDO('mysql:host=localhost;dbname=rooms', 'reex', 'reex1', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or die(); // POBRANIE WSZYSTKICH MAREK SAMOCHODÓW (DISTINCT - pobieramy marki bez powtórzeń) $stmt = $db->query("SELECT Nazwa FROM ulica"); $ulica = $stmt->fetchAll(); ?> <form action="" method="post" id="formularz"> <label for="ulica">Wybierz Ulice</label> <select id="ulica" name="ulica"> <option>Wybierz</option> <?php foreach($ulica as $v): ?> <option><?php echo $v['Nazwa']; ?></option> <?php endforeach; ?> </select> <label for="pokoj">Wybierz pokoj</label> <select id="pokoje" name="pokoj"> </select> </form> <script> $('#ulica').on('change', function(){ var ulica = $(this).val(); $.ajax({ type: 'POST', url: 'szukaj.php', data: { 'ulica':ulica }, success: function(msg){ $("#pokoje").html(msg); } }) }) $('#formularz').submit(function(){ /* SPRAWDZAMY, CZY UŻYTKOWNIK WYBRAŁ JAKIŚ MODEL, JEŻELI NIE TO NIE POZWALAMY WYSŁAĆ FORMULARZA */ if (!$("#pokoje option:selected").length){ alert('Wybierz pokoj'); return false; } }) </script> szukaj.php Kod <?php $db = new PDO('mysql:host=localhost;dbname=rooms', 'reex', 'reex1', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or die(); $stmt = $db->prepare("SELECT `Nazwa`,`NrPokoju` FROM `pokoj`,`ulica` WHERE pokoj.UlicaId=ulica.Id "); $stmt->bindValue(':ulica', $_POST['ulica'], PDO::PARAM_STR); $stmt->execute(); $pokoje = $stmt->fetchAll(); $odpowiedz = null; if(count($pokoje)){ foreach($pokoje as $v){ $odpowiedz .= '<option>'.$v['NrPokoju'].'</option>'; } } echo $odpowiedz; |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 804 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Gdzie jest warunek na nazwę ulicy w zapytaniu w szukaj.php?
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Przedstaw jakie masz kolumny to będzie prościej
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 74 Pomógł: 3 Dołączył: 30.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Może nie jestem jakiś sprytny ale czy:
WHERE pokoj.UlicaId=ulica.Id "); Nie powinno być: :ulica ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Powinno
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
moje tabele
'ulica' ![]() 'pokoj' ![]() 'mieszkaniec' ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Już dostałeś odpowiedź. Jak bindujesz :ulica to uwzględnij to w zapytaniu a nie bierzesz dane z kosmosu
SELECT `Nazwa`,`NrPokoju` FROM `pokoj`,`ulica` WHERE UlicaId=:ulica @edit o matko, zastanów się co robisz. Wstawiasz w warunek stringa gdzie id może być tylko integerem. Po pierwsze musisz zmodyfikować w formularzu selecta, żeby przesyłał id ulicy a nie nazwę! Ten post edytował Turson 10.06.2014, 18:26:15 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Już dostałeś odpowiedź. Jak bindujesz :ulica to uwzględnij to w zapytaniu a nie bierzesz dane z kosmosu SELECT `Nazwa`,`NrPokoju` FROM `pokoj`,`ulica` WHERE UlicaId=:ulica @edit o matko, zastanów się co robisz. Wstawiasz w warunek stringa gdzie id może być tylko integerem. Po pierwsze musisz zmodyfikować w formularzu selecta, żeby przesyłał id ulicy a nie nazwę! jestem bardzo poczatkujacym dlatego pytam na forum |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Początkujący początkującym, ale bazujesz na gotowcu
- dopisałem Id w zapytaniu, żeby pobrało, - dodane Id w value option
- poprawiłem zapytanie WHERE ... = :ulica - wywaliłem kolumnę Nazwa bo takiej nie widzę w strukturze bazy - w ostatniej linijce dopisałem, że wyświetli opcje brak wynikow jezeli nic nie znajdzie. To wskaze czy w ogóle czegoś szuka, bo przydałoby się odpalić konsolę w przeglądarce i zobaczyć odpowiedzi zapytania Pisane z palca Ten post edytował Turson 10.06.2014, 18:37:23 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
zmienilem jeszcze tylko jedna linijke w szukaj.php poniewaz powielalo sie
Kod SELECT DISTINCT `NrPokoju` FROM `pokoj`,`ulica` WHERE UlicaId=:ulica " dziekuje Turson Ten post edytował lukas1986s 10.06.2014, 18:53:53 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 1.07.2025 - 16:57 |