![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 27.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam pewien duży problem.
Pracuję z edytorem CKEditor. Wysyłam treść do bazy danych. Chciałbym teraz zmienić tą treść za pomocą tego samego formularza (pod textarea podpięty CKEditor). Formularz składa się z tego textarea oraz selecta. W momencie zmiany selecta powinna wpisać się treść z odpowiedniego miejsca z bazy danych. Można to zrobić ajaxem, wiem niemniej jednak ja robię to tak (pseudokod): 1. pobierz za pomocą php info z bazy $q = "SELECT id, name FROM tabela ORDER BY id";y $r = mysqli_query($dbc, $q); if (mysqli_num_rows($r) >= 1) { while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { $maxId = $row['id']; $bookmarkContent[$row['id']] = $row['bookmarkContent']; } } 2. mam więc tablicę z pobranymi argumentami pora wtrącić to do javascript echo ' <script language="JavaScript" type="application/javascript"> var tablica = new Array(); '; for ($i = 1; $i <= $maxId; $i++) { $tekst = htmlspecialchars_decode($bookmarkContent[$i]); $tekst = str_replace(' ', '<br />', $tekst); print "tablica[$i] = '$tekst';"; } 3. a następnie funkcja ''wpychająca'' te texty do wyswiga echo 'function zakladkaDoEdycji2(form) { yourInt = parseInt(form); CKEDITOR.instances.bookmarkEditor.setData(tablica[form]); } </script>'; Wywołanie funkcji wygląda tak onchange="zakladkaDoEdycji2(this.form.changableBookmarksList.value)" a name obiektu(textarea) to bookmarkEditor I teraz pojawia się problem bo jak do jednego elementu tablicy jest wpisywany bardzo długi tekst to się wykrzacza. Z tej strony http://www.truuck.boleslawiec.pl/przepe%C5...enie_stosu.html dowiedziałem się (czego domyślałem się wcześniej) że przepełniam tablicę a tym samym stos. pytanie jak to zrobić żeby działało. W skrócie zmiana selekta ma spowodować wpisanie tekstu z bazy danych do textarea do którego podpięty jest wyswig. JAK TO ZROBIĆ? Ten post edytował pikornecki 18.10.2011, 21:40:07 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
może daj tą stronę live...
jestem ciekaw jednego fragmentu w Twoim kodzie: Kod print "tablica[$i] = '$tekst';"; czy w tym tekście nigdy nie wystąpi pojedynczy apostrof?? - nie wydaje mi się by był on znakiem specjalnym ;p - może jednak konsola coś pokazuje... i a propo treści z strony do której podałeś linka Cytat Inną przyczyną przepełnienia stosu jest próba stworzenia dużej tablicy na stosie. Rozwiązaniem jest zwykle przydzielanie pamięci dynamicznie. JS jest dosyć mocno dynamicznym językiem, poza tym po drodze tworzysz dynamicznie tablicę deklaracją new Array(); ![]() -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 27.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
ok znam już prawdopodobną odpowiedź:
Multiline Strings teraz więc pytanie, jak z takiego stringa: '<p> </p> <p class="p1" style="text-align: center; "> <span style="color:#ff0000;"><span style="font-size:18px;"><b>STOLARSKI ZAKŁAD USŁUGOWO - PRODUKCYJNY</b></span></span></p> ' zrobić takiego co zastąpi mi nową linię na znak ' \ ' tak jak na tej stronie: http://www.strzelecki.info/2011/05/26/mult...ngs_javascript/ |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
znak nowej linii w windowsie to \r\n, w linuxie to \r, w macu to \n więc znaki specjalne \r i \n mógłbyś zamieniać na spacje gdyż tak jest wyświetlana nowa inia w html'u i nie piszę o br - ale to tak k' woli tego o co bezpośrednio pytałeś...
w zrobisz duuuużo lepiej jeśli lukniesz na funkcję w php json_encode czy podobnie się zwie i już po problemie szybka konwersja Twojej tablicy jedną funkcją ![]() -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 27.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
no i bym powiedział ZAJE..ŚCIE zegarek84 pomogłeś
![]() ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 1.05.2025 - 04:35 |