Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript][PHP] Wgrywanie i dodawanie zdjęć do artykułu
Forum PHP.pl > Forum > Przedszkole
in5ane
Witam. Mam problem, otóż zastanawiam się, w jaki sposób zrobić "coś" takiego. Mianowicie tworzę dodawanie artykułów. Treść wpisuje się w zwykły textarea (bez jakiś dodatkowych edytorów Wysywig, np. tinyMCE). Muszę zrobić coś takiego, żeby można było dodawać w dowolnym miejscu artykułu zdjęcia (oraz zaznaczać jaki chce się ich rozmiar). Myślałem, by użytkownik wpisywał sobie w tekście w miejscu, gdzie chce zdjęcie np. coś takiego: {img:1:400:200} (co by znaczyło: {img:id:szerokość:wysokość}) i później bym to sobie obrabiał w php i ładnie wyświetlał na stronie głównej, z tym nie ma problemu smile.gif Problem pojawia się, gdyż nie wiem, ile użytkownik będzie chciał wgrać zdjęć. Jeden ani jednego zdjęcia, a drugi będzie chciał ich wgrać np. 85 sztuk. W jaki sposób mam rozwiązać taki problem? Odpada możliwość wgrywania zdjęć przez FTP. Proszę o pomysły.

@edit: skąd, jak, w jaki sposób ile mam wyświetlić input file'ów? podrzućcie jakieś pomysły.
nospor
W js przecież też są wyrażenia regularne. Możesz więc sprawdzić przy pomocy js ile koleś wstawił w textarea {img:1:400:200} i na tej podstawie wygenerować pod spodem odpowiednią ilosc inputów
!*!
Skoro w tekście będzie {img:1:400:200} to użytkownik podaje ID z galerii już istniejącej lub bezpośredni link z zewnątrz? preg_match_all + count

A to ile masz wyświetlić inputów to zależy od Ciebie... z reguły jest to jeden + button "dodaj input" obslugiwany przez JS lub iframe jak chcesz być super kompatybilny wstecz, lub bardziej nowoczesny w HTML5 zanaczanie wielu plików
in5ane
Tzn. będzie tak. Ktoś tworzy artykuł i wpisuje temat i treść. W treści umieszcza te zdjęcia i poniżej będzie np. button z value Wgraj zdjęcia i jak ktoś go kliknie, żeby mu pokazała się odpowiednia ilość input file'ów.

Zastanawiam się tylko, w jaki sposób policzyć ile jest tych moich {img:id:szer:wys} w textarea. W php mamy funkcję: substr_count, w JS jej brak.
sabat24
Odnośnie...
Cytat
W php mamy funkcję: substr_count, w JS jej brak.

...masz coś takiego -> http://phpjs.org/functions/substr_count/
in5ane
Znalazłem to i skorzystałem, ale jak dawałem wyrażenie regularne, to mi nie zliczało.
[JAVASCRIPT] pobierz, plaintext
  1. substr_count(content, '\*{img:[0-9]{1,}:[0-9]{1,}:[0-9]{1,}\}$')
[JAVASCRIPT] pobierz, plaintext
sabat24
Gdyż substr_count nie służy do działania na wyrażeniach regularnych (także w php), tylko na zdefiniowanych ciągach znaków. Poza tym według mnie nie ma w ogóle sensu używać wyrażeń regularnych, ponieważ wystarczy zliczyć ciągi "{img:", w końcu nie potrzebujesz konkretnego wzorca, tylko interesuje Cię liczba pól do wstawienia, a więc liczba img w tekście i chyba nie ma znaczenia, jakie one mają ID, bo do wstawiania pól input nie są one potrzebne.
in5ane
Cytat(sabat24 @ 4.02.2013, 16:57:28 ) *
Gdyż substr_count nie służy do działania na wyrażeniach regularnych (także w php), tylko na zdefiniowanych ciągach znaków. Poza tym według mnie nie ma w ogóle sensu używać wyrażeń regularnych, ponieważ wystarczy zliczyć ciągi "{img:", w końcu nie potrzebujesz konkretnego wzorca, tylko interesuje Cię liczba pól do wstawienia, a więc liczba img w tekście i chyba nie ma znaczenia, jakie one mają ID, bo do wstawiania pól input nie są one potrzebne.

Tak też poczyniłem smile.gif
!*!
Cytat(sabat24 @ 4.02.2013, 16:57:28 ) *
Gdyż substr_count nie służy do działania na wyrażeniach regularnych (także w php), tylko na zdefiniowanych ciągach znaków. Poza tym według mnie nie ma w ogóle sensu używać wyrażeń regularnych, ponieważ wystarczy zliczyć ciągi "{img:", w końcu nie potrzebujesz konkretnego wzorca, tylko interesuje Cię liczba pól do wstawienia, a więc liczba img w tekście i chyba nie ma znaczenia, jakie one mają ID, bo do wstawiania pól input nie są one potrzebne.


A jak w tekście napiszę "{imgbug:}" to zrobi mi kuku?
sabat24
To nic się nie stanie. Żeby stało się to, co chcesz, musisz wpisać: "{img:bug}" i dostaniesz wtedy inputa gratis do formularza.
in5ane
Ale takie wpisywanie będzie tylko dla redaktora i on będzie wiedział, co ma robić tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.