![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
Witam
Od niedawna tworzę coś w JavaScript i dlatego postanowiłem umieścić ten problem tutaj, ale nie wiem czy należy on do błędów podstawowych. Ale do rzeczy. Znalazłem w necie dosyć prostą instrukcję, a raczej gotowy skrypt, który przy zmianie wybranej opcji pola typu select pobiera z bazy danych dane na ten temat i wyświetla bez przeładowania na stronie. Mi jest potrzebny podobny skrypt, jednak ten ma pod wpływem wyboru w jednym polu select pobrać dane z tablicy i umieścić je jako opcje w drugim polu select. Trochę już nad tym siedzę, dlatego postanowiłem tutaj spytać się co może robię źle. Oto całość: index.html
getproduct.php
Oba pliki są na tym samym poziomie. Możliwe, że jest to jakiś głupi błąd, ale ja jakoś patrzę i nic nie widzę. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
zamień na
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
Zamieniłem tak jak mówiłeś i nadal nic. Prawdę powiedziawszy, to nie wiem za bardzo co dała twoja zmiana. Jedyne co zauważyłem, to to, że mam dwa nawiasy klamrowe po if, a tylko jeden jest mi potrzebny dlatego drugiego wywaliłem. Aktualnie kod getproduct.php wygląda tak:
I co najgorsza, cały czas nie chce się ruszyć nic. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 380 Pomógł: 59 Dołączył: 24.04.2010 Skąd: London Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego tak:
a nie tak:
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
Prawdę powiedziawszy to nie do końca wiem czemu akurat tak, ale nawet po zmianie nie chce się ruszyć, tak więc to nie to.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Przetestowałeś poprawność działania AJAX?
Na początek sprawdzić czy jest ok dając jakieś echo. Jeśli się wyświetla idziesz krok dalej, pobranie zmiennej - czy działa. Jeśli tak to coś z zapytaniem. Kod mysql_query("SELECT FROM colors WHERE id='".$p."'"); Nie wystarczy: Kod mysql_query("SELECT FROM colors WHERE `id` = $p "); ? Oczywiście jeśli id jest numeryczne. Potem jeśli jest wszystko ok to pętla i warunek. Tu już bym ponowił zalecenia Lord'a. -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 380 Pomógł: 59 Dołączył: 24.04.2010 Skąd: London Ostrzeżenie: (0%) ![]() ![]() |
dziwisz się ze nie działa skoro tego nie chcesz, karzesz wyciągać z bazy ale co?
a może: -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
Dobra, ten pomysł się sprawdził, w pewnym sensie. Sprawdziłem, czy zwykła komenda ruszy.
Wszystko oprócz getproduct.php zostało takie samo. Teraz skrypt ma pobierać wartość wybranej opcji, a następnie umieszczać ją w kolejnym selekcie. Taki jest kod gedproduct.php:
No i teraz też milczy. Czyli mam podejrzewać, że AJAX nie działa? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Heh, nie zauważyłem tego byka, a nawet go zacytowałem
![]() Edit: ogólnie to bym polecił AJAXem bawić się za pomocą jakiejś biblioteki np. jQuery. Ten post edytował markonix 12.12.2010, 17:11:25 -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
No wiem, że można bawić się bibliotekami, ale jakoś nigdy nie miałem ochoty żadnej się nauczyć. A ten cały skrypt to jest moja modyfikacja skryptu wziętego z wydaje mi się bardzo dobrej strony ->http://www.w3schools.com/PHP/php_ajax_database.asp
No i albo ja coś zupełnie poplątałem, albo tego nie da się przerobić (tutaj już wątpię, żeby się nie dało). |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Może najpierw odpal plik PHP bez AJAXA i sprawdź czy nie wywali błędów
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
Tak jak poleciłeś, sprawdziłem plik PHP bez AJAXA.No wszytko działa. Dodam tylko, że nieco pozmieniałem kod, żeby był w miarę prosty, żeby móc stwierdzić, gdzie leży błąd.
Teraz kod wygląda tak: getproduct.php
plik w którym jest AJAX (nazwałem go testowa.html (a tak na marginesie, czy mogę też uruchomić AJAXA w plikach z rozszerzeniem php?):
Może, teraz ktoś mi coś pomoże, bo ja jeszcze nie umiem na tyle dobrze JavaScript, żeby móc coś samemu orzec. |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Zamień:
xmlhttp = new onreadystatechange Na: xmlhttp.onreadystatechange Polecam Ci zaglądać w konsolę błędów w przeglądarce oraz zainstalować sobie firebuga |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
Dzięki wielkie. Teraz już działa. A teraz powiedz mi jeszcze jedno, czy jak chcę mieć jakiś efekt (np. rozsuwanie się tekstu czy jakiś błysk, no cokolwiek) to wtedy muszę użyć jQuery, czy sam też mogę coś takiego napisać?
Dobra może średnio dobrze zadane pytanie. Chodzi mi o to, czy napisanie własnych takich efektów jest rzeczą trudną, czy bardzo trudną (może lepiej będzie użyć słowa - pracochłonną.) Po drugie, czy jest jakaś różnica, jeśli ten skrypt umieszczę nie bezpośrednio w kodzie, tylko przez dopisanie <script type="text/javascript" src="ścieżka_do_skryptu"></script> No i jeśli jeszcze mogę się spytać o coś, to powiedz mi czy mogę podobny kod umieścić w pliku o rozszerzeniu php a nie html jak teraz zrobiłem? A co do konsoli błędów i firebuga, to muszę powiedzieć, że słyszałem już takie rady, ale ja używam Chrome i średnio nawet wiem, czy coś takiego już jest dla Chrome. Tak więc jakby ktoś miał jakieś info co do tego to będę wdzięczny. |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Co do efektów to można znaleźć w sieci gotowe funkcje (niekoniecznie wielkie frameworki typu jQuery). Napisanie samemu takowych nie jest zbyt skomplikowane ale wymaga dobrej znajomości css i js.
Co do <script type="text/javascript" src="ścieżka_do_skryptu"></script> to nie ma różnicy (zakładając że wszystko jest poprawnie). Rozszerzenie pliku pobieranego przez ajax nie ma znaczenia. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 06:36 |