[CSS][PHP][JS] Dopasowanie szerokości komórek tabeli (chat)

No właśnie nie bardzo, bo z tego co ja mam napisane ciężko by było zrobić sam kod php. Tzn dużo roboty by było, wiele by trzeba pozmieniać. Np każdy link zamiast link trzeba by było zamienić na link.

Do tego sam sposób ładowania zawartości do odpowiednich okienek: wczytywany plik musi mieć wszystko (tzn. musi ładowac plik konfiguracyjny, aby połączyć się z bazą i jeszcze kilka innych plików odpowiedzialnych za klasy różnych elementów. Ogólnie musi ładować wszystko). Żeby zmienić to na czysty php trzeba by było powywalać z wszystkich tych “pliczków” linijkę z includem pliku “sterownika”.

Może źle to robię, ale innej metody nie wymyśliłem :slight_smile:

Jeśli w href masz # to trzeba by to było zmienić. Np mógłbyś tam wpisać:

W htaccess zmieniłbyś sobie rewrite na:

RewriteCond %{REQUEST_URI} \.obs$ 

RewriteRule (.*).obs $1.php [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*) index.php?strona=$1 [L]

Potem w index.php zrobiłbyś:

<?php      

      if($_GET['strona']=='')

  	 include 'main.php'; else

         include $_GET['strona'].'.php';

      ?>(w miejscu gdzie ładujesz js)

W js zrobiłbyś

$('a').click(function(e) {e.preventDefault();$('#zawartosc').load($(this).attr('href')+'.obs');});

Nie musiałbyś nic wywalać z każdego pliku :stuck_out_tongue: (zmieniłbyś tylko linki i index.php)

Wszystko pisałem z palca i nie sprawdziłem, mogą być błędy. Ale ogólna idea jest jasno nakreślona.

//edit, musiałem poprawić kod, bo niestety był błędny

//edit2, trza było poprawkę nanieść bo bez js nie działało

działający kod:

metoda-dynamicznego-wczytywania-podstron-t520287.html#p3260401

Nigdy (prawie) nie bawiłem się plikiem .htaccess, więc nie rozumiem zbytnio tego fragmentu posta (co właściwie ta zmiana wnosi?). Z tego co sprawdzałem już kiedyś, to dając jakąkolwiek wartość do href="" to po kliknięciu w odnośnik strona z automatu się przeładowuje, a ja właśnie tego chcę uniknąć.

Poza tym w ten sposób za każdym razem przeładowywałbym tak jakby całą zawartość. Zmieniałyby się tylko przekazywane dane, ale w rzeczywistości nic by to nie zmieniało poza tym, że wczytywanie byłoby “w tle”… tak mi się wydaje. Chyba, że coś źle zrozumiałem twoją ideę.

Na początku chciałem w podobny sposób budować stronę, konkretnie: mieć czysty kod php, w nim instrukcje które wyświetlałyby odpowiednią zawartość w zależności od przekazanej danej. Z tą różnicą, że nadal linki opierałbym o id, a w JS przypisałbym odpowiednie działanie po naciśnięciu na dany odnośnik, czyli np:

$("#przyciskPierwszy").click(function(){$("body").load("index.php?strona=1");});

Problem w tym, że gdy stworzyłem sobie taki szkic, to strona mi się zwieszała podczas “ładowania w tle”. Tzn: po naciśnięciu w odnośnik musiałem poczekać aż załaduje nową zawartość do body, żeby dalej móc pracować (czyli nie mógłbym tak jak w chwili obecnej otwierać sobie danych okienek po kolei, a one oddzielnie wczytywałyby się nie zakłócając pracy działania wczytanego już wcześniej kodu).

A to sposób, w jakim tkwię obecnie (patrz mój wcześniejszy post) jest jakimś karygodnym błędem? :stuck_out_tongue: W sumie dzięki tej metodzie użytkownik może wylistować prawie wszystkie pliki katalogu. Ponad to może otwierać je z osobna znając ich adres. Zastanawiałem się już wcześniej czy nie zagrozi to jakoś bezpieczeństwu strony, ale jakoś nie znalazłem większego zagrożenia.

@ i co to jest za plik z rozszerzeniem .obs?

Rewrite z htaccess zmienia właśnie cokolwiek z url na coś innego wg zadanego schematu. Czyli linki zamiast:

index.php?id=costam będą mogły mieć tylko costam by mieć w $_GET[‘id’] wartość cośtam

Strona przeładowywać się nie będzie tylko jeśli masz włączone js (masz przecież return false w click do a). Natomiast u ciebie strona działać w wypadku wyłączonego js nie będzie wcale.

Co do bezpieczeństwa to to samo. I tak trzeba sprawdzać logowanie etc w każdym pliku. (ale to i tak powinieneś sprawdzać przy połączeniu z bazą zaraz przed real escape string)

No dobra, ale za każdym razem ładuje plik index.php. A moim wypadku plik główny mam załadowany i nie przeładowuję go ani razu. W razie potrzeby (po kliknięciu odpowiedniego przycisku) ładowane są tylko konkretne pliki do konkretnych miejsc. Przykład: mam w tle jakiś obrazek i jeszcze jakieś elementy do których wczytywana jest odpowiednia zawartość. W moim przypadku jest to taki szablon, który jest raz załadowany i już nic z nim nie robię. Według powyższej metody przy każdej akcji (naciśnięciu przycisku) ładowany by był plik index.php (a więc cały ten szablon, który przecież cały czas pozostaje bez zmian) oraz w odpowiednim miejscu załadowałby się konkretny plik (zależny od naciśniętego przycisku). Dobrze myślę czy nie?

Przy każdej akcji ładowany jest inny plik (nie index.php !!

A to na podstawie tego kodu:

$(a).click(function(){$('zawartosc').load(this.href()+'.obs');return false;});

skąd on będzie wiedział gdzie ma załadować dany plik? Zawsze będzie ładował do tego samego miejsca (zawartosc)?

Czyli w zasadzie działa to tak samo tylko że zapis jest prostszy czy jak? No i co to są te pliki .obs?

sorki że tak męczę, postaram się jak najszybciej zakończyć ten temat…

Tak, będzie ładował zawsze do tego samego miejsca. Jednak w zależności od url można dać w różne. Wszystko jest inwencją twórcy. Rozszerzenie może być i .jajo też inwencja twórcy. Ja tylko chciałem rozróżnić wywołania js’a od tych z index.php. Nikt ci nie każe tego tematu kontynuować. Ja to wałkuje bo ludzie robią źle. Jak ktoś nie używa js to nie działa i tracisz go.