![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 12.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, planuję zrobić bogatą stronę z użyciem Ajax'a i oczywiście php.
Pomyślałem, że każdy link mógłby być obsługiwany przez Ajax'a: chodzi o to, żeby w ogóle nie zachodziło odświeżanie strony. Jak wiadomo, aby kliknięcie linku nie wywołało przeładowania strony, musi mieć to samo zapytanie co obecne i jakis fragment (#) określający id jakiegoś elementu na stronie. I zapytanie mające na celu wyświetlenie newsa miało by taką postać: ?newsid=15 Używając Ajax'a, fragment miałby postać #newsid=15. I teraz jest problem: ktoś chciałby przesłać znajomemu link z owym newsem, a byłby on taki: http://www.exemple.com#newsid=15 co naturalnie nie wyświetli newsa o id 15, tylko stronę główną. Pytanie brzmi: czy i jeśli tak, to jak, serwer www może rozpoznać fragment URI, i przekierować z np: http://www.exemple.com#newsid=15 na normalny adres z zapytaniem http://www.exemple.com?newsid=15 ? Z góry dziękuję za pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 16.04.2005 Skąd: Białowieża Ostrzeżenie: (0%) ![]() ![]() |
Chyba musisz użyc innego znaku... bo w URLu wysyłanym od przeglądarki do serwera nie ma nawet tego "#", służy to tylko przeglądarce do poruszania się po już przysłanej stronie
![]() -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 12.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
No to jest jakiś inny sposób na generowanie dynamicznej treści Javascript'em i Ajax'em, żeby można to było później komuś przesłać w postaci linku?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 16.04.2005 Skąd: Białowieża Ostrzeżenie: (0%) ![]() ![]() |
Odsyłam do mod_rewrite.
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Zrob normalna strone, z normalnymi linkami. Jak juz wszystko bedzie dzialac to wtedy na linki zaloz sobie na przyklad onclick="return wczytajNews (15)", a funkcja wczytajNews bedzie zwracala false przez co link bedzie nieaktywny.
W ten sposob robisz strone przyjazna dla crawlerow i jednoczesnie "on top of that" dajesz ajaxowe bajerki dla uzytkownikow. -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 12.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za mod_rewrite, ale mi nie działa
![]() Jak mam się dowiedzieć, czy mój apache to obsługuje? Robię dokładnie tak, jak na home.pl jest to opisane, w katalogu głównym serwera umieściłem plik index.php zawierający:
oraz w tym samym katalogu plik .htaccess: Cytat RewriteEngine on RewriteRule id/([a-zA-Z0-9]) index.php?id=$1 Teraz po wpisaniu adresu, np http://127.0.0.1/?id=abcd123 otrzymuję oczywiście stronę z treścią abcd123, jednak po wpisaniu http://127.0.0.1/id/abcd123 otrzymuję komunikat o błędzie, jakby serwer szukał domyślnego pliku w folderze id/abcd123, czy ktoś pomoże co robię źle? |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 16.04.2005 Skąd: Białowieża Ostrzeżenie: (0%) ![]() ![]() |
A w httpd.conf włączyłeś ten moduł?
-------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 12.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
No teraz usunąłem znak komentarza w httpd.config, jednak przy restarcie apache jest komunikat o błędzie, że moduł mod_rewrite nie znajduje się na liście załadowanych modułów... Oznacza to, że go po prostu nie ma na moim apach'u ?
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 0 Dołączył: 16.04.2005 Skąd: Białowieża Ostrzeżenie: (0%) ![]() ![]() |
Wrzuć odpowiedni plik dll/so (zależy, czy win32/linux) do katalogu z bibliotekami apache'a i wtedy spróbuj.
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 12.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
A skąd mogę wziąć mod_rewrite.dll? Szukam ciągle w google, ale jakoś znaleźć nie mogę
![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
.dll? Eeee, ja na windzie mam .so
![]() Kod # # AccessFileName: The name of the file to look for in each directory # for additional configuration directives. See also the AllowOverride # directive. # AccessFileName .htaccess i taki: Kod #
# AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%) ![]() ![]() |
to co chcesz zrobic to "degradable AJAX" + "HIJAX"
polecam: http://particletree.com/features/the-hows-...egradable-ajax/ http://www.softwaredeveloper.com/features/...ay-nice-061907/ to bardzo ładne i nowoczesne podejscie do tworzenia aplikacji internetowych ![]() Ten post edytował domis86 6.11.2007, 13:24:33 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 12.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
drPayton, pomogło, dzięki
![]() domis86, jako że to jest po angielsku, a że mój angielski jest jaki jest... To idzie mi to powoli, ale postaram się całe artykuły przeczytać ![]() I mam teraz tylko ostatnie pytanie dotyczące również pierwszego pytania w pierwszym poście; otóż wracając do problemu przesłania koledze linka, fraza w .httaccess: Kod RewriteRule \#([0-9a-zA-Z=&]+) index.php?$1 oczywiście nie działa, bo # jest znakiem komentarza, nieprawdaż? Podstawienie jakiegokolwiek innego znaku, np ! Kod RewriteRule \!([0-9a-zA-Z=&]+) index.php?$1 da pożądany efekt; zapytanie http://127.0.0.1/!id=news&newsid=154 będzie oznaczało to samo co http://127.0.0.1/?id=news&newsid=154 Tylko jak to połączyć ze znakiem "#", bo przecież inaczej nie mogę zmieniać adresu URI po stronie przeglądarki bez przeładowania strony? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:40 |