Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [TinyMCE][AJAX]Przesyłanie danych do PHP i zapisanie w MySQL
Forum PHP.pl > Forum > XML, AJAX
tlaguz
Witam.

Mam następujący problem.
Tworzę przycisk w HTML i w zdarzeniu onclick mam wywołanie funkcji AJAX która to wywołuje skrypt PHP z parametrem POST w którym TEOREtYCZNIE znajduje się zawartość TinyMCE. Z TinyMCE zawartość pobierałem na różne sposoby (m.in. przez innerHTML oraz przez "var x=tinyMCE.get('nazwa').getContent();")

Zawsze jednak PHP odbiera pustą zmienną a FF w konsoli błędów wyświetla przykładowo:

Ostrzeżenie: Nieznana własność "mso-border-top-alt". Deklaracja opuszczona.
Plik źródłowy: ^^ Nie dam Wam adresu mojej strony aaevil.gif
Wiersz: 0

i pełno innych opuszczeń wszystkich wartości css.

Wie ktoś jak to zrobić tak aby działało?
Proszę o szybką pomoc.

Z góry dziękuje za odpowiedź i pozdrawiam
tlaguz.
masterix
Pokaż kod pobierający dane i wysyłający je
tlaguz
Wysyłam wywołując plik PHP ze zmienną POST, a po odebraniu z POSTa kod urywa się przy znakach: "&" lub: "=" lub ";" lub średnikach.

Jak przesyłam przez zwykły formularz jest ok.

Może da się jakoś zamienić te znaki na jakiś kod? (PHP musi po otrzymaniu mieć normalnie)
kimj9174
Ajax
Kod
<BR>function podmiana(tresc)<BR> {<BR>    var myAjax = new Ajax.Request('include/pobierz.php?link'+ new Date().getTime()+'&tesc='+tresc, { method: 'get', onComplete: showResponse } );<BR><BR>function showResponse(MyRequest)<BR>   { <BR>     $('duzy').innerHTML = MyRequest.responseText<BR>}<BR>     //wyswietlenie zawartosci  w div o id duzy<BR>


plik pobierz php
Kod
<BR><?PHP<BR>echo $_GET['tresc'];<BR><BR>?><BR>


Sprawdz moze masz wylaczone register globals off i wywolujesz $zmienna zamiast $_GET['zmienna'].

onclick=podmiana('zawartosc tinymce');

a jesli chodzi i ci o przetwarzanie danych z formularza z tiny
wysylasz dane do pliku
Kod
<BR><?PHP echo $_POST['zanwa pola z formularza']; ?><BR>


o to ci commmon?questionmark.gifsmile.gif
tlaguz
No właśnie nie bardzo.

Nagłówek GET może mieć tylko 255 znaków więc ślę to POSTem.

AJAX:
  1. var Requester = false;
  2.  
  3. if(window.XMLHttpRequest)
  4. {
  5. Requester = new XMLHttpRequest();
  6. Requester.overrideMimeType("text/xml");
  7. } else
  8. if(window.ActiveXObject)
  9. {
  10. Requester = new ActiveXObject("Microsoft.XMLHTTP");
  11. }
  12.  
  13. if (Requester)
  14. {
  15. Requester.open("POST", url);
  16. Requester.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  17. Requester.onreadystatechange = function()
  18. {
  19. if (Requester.readyState == 4 &&
  20. Requester.status == 200)
  21. {
  22. //null
  23. }
  24. }
  25. }
  26. Requester.send(postdata);


postdata to zawartość TinyMCE.

PHP:
  1. <?php
  2. echo $_POST["text"];
  3. ?>


oczywiście postdata ma taką postać: "text=blacośtamblablabla".

I rozgryzłem tyle, że nie mogę użyć znaków &, "", = itp.
I stąd moje pytanie.
Jakie są wszystkie znaki używane w nagłówku POST i jak je wszystkie podmienić, tak abym miał 100% pewność, że będzie działać?
kimj9174
uzywasz czystego ajaxa czy jakiegos frameworka?questionmark.gifquestionmark.gif
tlaguz
Czystego.

I jak widać łączę się przez obiekt XMLHttpRequest
kimj9174
prototype
Kod
function wyslij()
{
   var myAjax = new Ajax.Request('include/wyslij.php?'+ new Date().getTime() +'&dane='+$F('dane')+'&temat='+$F('temat')+'&email='+$F('email')+'&tresc='+$F('tresc'), { method: 'post', onComplete: showResponse } );

  
function showResponse(MyRequest)
{  
function showAlert(MyRequest) {   alert("Operacja nie powiodła się"); }
$('opis').innerHTML = MyRequest.responseText
}


wysyła dane z formularza
w pliku wyslij.php jest funkcja mail+ zapisuje kopie do bazy.

Popatrz za jakims frameworkiem. po co wywarzac juz otwarte drzwi smile.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-2025 Invision Power Services, Inc.