Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Edytor nie działa jak należy
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
frankiejojo
Cześć,
Piszę formularz, w pewnym momencie ma się pojawić textarea i dobrze by było, by miała wygląd jak należy.
Program w uproszczeniu składa się z dwóch plików
wyswigStart.php i wyswig.php
WyswigStat.php wygląda następująco
  1. <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">
  2. <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
  3. <script src="nicEdit/nicEdit.js"></script>
  4. <script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
  5. <script type="text/javascript">
  6. function dodawarka(){
  7. $.get( "wyswig.php", {dane:$("#dane").val()
  8. } ).done(function( data ) {
  9. $("#wyniki").html(data);
  10. });
  11. }
  12. </head>
  13. <button class='button buttonPanel' onclick='dodawarka()'>Dodaj ofertę</button>
  14. <div id='wyniki'></div>
  15. opis: <textarea width="300px"></textarea>
  16. </body>
  17. </html>


Textarea w powyższym pliku została umieszczona tylko po to by sprawdzić czy nicEdit działa - wykasowanie jej niczego nie zmienia w działaniu programu.

i plik wyswig.php
  1. opis: <textarea width="300px"></textarea>


i teraz cały problem polega na tym, że textarea w pliku wyswig niczym się nie różni od zwykłego inputa (poza wielkością). Zwyczajnie nie widzi tego nicEdit.
Zmiana miejsca wklejenia nicEdit (script napisany kursywą - przeniesienie tych linijek do pliku wyswig.php) zmienia tylko tyle, że osobno uruchomiony program wyswig.php wyświetla się z ładną textareą natomiast jeżeli ten plik zostanie uruchomiony za pomocą funkcji z pliku wyswigStart to "jest zwykły input".

Jak sprawić by pomiędzy div=wyniki wyświetlała się ładna textarea?
Nie mam pomysłu.
trueblue
Może zamiast przestarzałego nicEdit zastosuj np. CKEditor?
frankiejojo
Zmiana edytora niczego nie zmienia.
Z CKEdirtor:
  1. <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">
  2. <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
  3. <script type="text/javascript">
  4. function dodawarka(){
  5. $.get( "wyswig.php", {dane:$("#dane").val()
  6. } ).done(function( data ) {
  7. $("#wyniki").html(data);
  8. });
  9. }
  10. </head>
  11. <button class='button buttonPanel' onclick='dodawarka()'>Dodaj ofertę</button>
  12. <div id='wyniki'></div>
  13. </body>
  14. </html>


i wyswig
  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>CKEditor</title>
  5. <script src="https://cdn.ckeditor.com/4.11.4/standard/ckeditor.js"></script>
  6. </head>
  7. <body>
  8. <textarea name="editor1"></textarea>
  9. CKEDITOR.replace( 'editor1' );
  10. </script>
  11. </body>
  12. </html>


Sam wyswig działa, razem nie chcą...
trueblue
Albo nie rozumiem co chcesz zrobić, albo dobrze rozumiem, ale to co robisz jest kompletnie bezsensowne.
Po to aby dołączyć nowy edytor wczytujesz kawałek kodu HTML Ajax'em? To jak układanka domino z 250 tys. klocków po to aby włączyć światło.
Jeszcze w pierwszym przykładzie można na to przymknąć oko, ale w drugim chcesz wstawić element <html> wraz z DOCTYPE do <div>?

Na wciśnięcie przycisku powinieneś dokleić kod <textarea> do <div>, ale bez użycia Ajax.
A potem:
  1. CKEDITOR.replace( 'id_lub_nazwa_dodanego_textarea');
frankiejojo
Do plliku wyswig.html skopiowałem przykład z instrukcji w ten sposób plik wyswig sam działał ale jak jest wywoływany ajacem to już nie.
Przyznaję CI 100% rację, że pisanie 14 linijek kodu tam gdzie można jedną jest bez sensu.
Dzięki za rady.
Zadziałało:)
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-2025 Invision Power Services, Inc.