![]() |
![]() |
![]()
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(); (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 05:29 |