odczytanie danych w skrypcie PHP wysłanych za pomocą Ajaxa

0

Witam,

Problem jest najprawdopodobniej banalny, jednak jest to moja pierwsza zabawa z technologią Ajax. Nie wiem mianowicie, jak w skrypcie PHP odczytać dane przesłane za pomocą metody POST i Ajaxa zapisane w formacie JSON. Wiem, że jest taka funkcja jak json_decode(), jednak nie wiem, co mam do niej wrzucić jako argument, by otrzymać wynikową tablicę/obiekt z przesłanymi danymi. Inaczej mówiąc - jak po stronie serwera mogę dostać się do danych przesłanych Ajaxem?

Poniżej uproszczony skrypt JS/jQuery wysyłający formularz:

formularz.submit(function()
{
	var dane = {"adres": "przykładowy_adres_email"}
        $.ajax({
	url: 'mail.php',
	data: dane,
	type: 'POST',
	success: function()
	{
             $('#jakis_div').text('Udało się przesłać dane.');
        },
	error: function(xhr, status)
	{
            $('#jakis_div').text('Nie udało się przesłać danych.');
	}
	});
	return false;
});

A może gdzieś w powyższym skrypcie jest błąd?

0

Ty tu nie przesyłasz jsona jako string. Linijka zaczynająca się od var dane to nie JSON - to definicja obiektu w javascripcie. JSON to prawie identyczny ciąg, zapisany jako string (zresztą patrz na nazwę: JSON, JavaScript Object Notation - ot javascriptoowa definicja obiektu, tylko zapisana jako string). W związku z tym po stronie serwera masz tylko jedną zmienną POST: $_POST['adres'].

Btw: Na takie problemy jest np. var_dump($_POST); ;) i obserwowanie odpowiedzi w Narzędziach Webdeveloperskich przeglądarki, której używasz (dla Firefox trzeba doinstalować dodatek Firebug, reszta ma wbudowane).

0

Tak,

$_POST['adres']

jak najbardziej działa. Oczywiście próbowałem wcześniej również tej możliwości, tyle tylko, że mój sposób sprawdzania efektów za każdym razem wprowadzał mnie w błąd (bezpośrednie otwieranie pliku .php z poziomu paska adresu przeglądarki), tutaj Firebug rzeczywiście okazał się być bardzo pomocny. Tak więc po umieszczeniu wszystkiego na serwerze wszystko poprawnie działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1