![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 1 Dołączył: 2.12.2008 Ostrzeżenie: (0%)
|
Witam.
Mam taką oto sytuację, za pomocą tych komend: Kod var fced = FCKeditorAPI.GetInstance(name); var zawartosc = fced.GetXHTML(true); pobieram zawartość FCKeditor i przekazuje ją za pomocą jQuery do pliku PHP gdzie ma zostać zapisana w BD. Wszystko jest okej w moim skrypcie, gdyby nie przypadek, że dodałem plugin Google Maps Do FCK i on dodaje do treści skrypt. W przypadku kiedy zawartość FCK jest przekazywana przez PHP wówczas nie ma problemu z zapisaniem tego w BD. Ale kiedy chce za pomocą jQuery (czyli JS) przekazać zmieną "zawartosc" która zawiera w sobie skrypt JS to wówczas nie zapisuje mi tego do BD. I nie wiem jak to rozwiązać. Wydaje mi się że wynika to z tego że w zapytaniu do BD: Kod $aktualizuj = "UPDATE $tab_menu SET description='$value' WHERE id=$postID"; $values - która zawiera wartość przekazaną przez JS (ze zmiennej zawartosc) jest obrana w pojedyczny cudzysłów (z racji tego że to string), a wewnątrz zmiennej skrypty są opatrzone również pojedyńczymi cudzysłowiami - I tutaj zapewne pojawia się konflikt niedomkniętech cudzysłowiów. Tylko nie wiem jak to rozwiązać teraz. Zaznacze jeszcze że opakowanie w stripslashes, czy htmlspecialchars nie rozwiązuje problemu. Kiedy zastosuje mysql_escape_string to znowu nie zapisze mi skryptu w BD. Ma ktoś jakieś inne pomysły ? Znalazłem miejsce w którym problem występuje. Kod ... document.write('<div id="gmap20099623323" style="width:400px; height:240px;">.<\/div>\'); Tutaj DIV ujęty jest w cudzysłów pojedyńczy i w tym miejscu występuje konflikt, nie wiem jak to przerobić by działało poprawnie. jak cudzysłów pojedyńczy zamienie na podwójny to dane zostaną zapisane w BD, ale na stronie nie wykonają się (tzn nie wyświetli mapki), z racji tego że wewnątrz występuje cudzysłów podwójny i to z kolei rozwala skrytp. Ma ktoś jakieś propozycje ? --------------------------------------------------------- Rozwiązałem to sam - jak w większości przypadków. W pliku do którego przekazywałem dane z JS (jQuery) w celu zapisania danych w bazie danych zmieniłem linijkę: Kod $value = $_POST["tresc"] na Kod $value = str_replace("'","\'",$_POST["tresc"]); Metoda może i zakombinowana trochę, ale przynajmniej skrypt działa tak jak trzeba.Cały problem był w tym, że FCKw pluginie googlemaps/fckplugin.js przekazuje do textarea dobrze zakodowany ten wpis czyli zamias ' występuje \', niestety textarea w stanie widoku automatycznie przekształca \' na '. Przez co zapisać się tego nie dało do BD bo jak pisałem wcześniej był błąd składni. Ten post edytował xajart 6.10.2009, 17:16:01 |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.08.2025 - 02:42 |