Witam,
mam taki kod:
$('#form1').on('submit', 'form.addProductToCart', function (event) { event.preventDefault(); $.ajax({ url: 'cart.php', method: 'POST', data: $(this).http://www.php.net/serialize() }) .done(function (data, textStatus, jqXHR) { }); });
$('#form1').on('submit', 'form.addProductToCart', function (event) { event.preventDefault(); $.ajax({ url: 'cart.php', method: 'POST', zmienna1 = "wartosc" zmienna2 = "123" }) .done(function (data, textStatus, jqXHR) { }); });
Jeśli getem to dodaj po prostu do URL te zmienne
w sumie nie wpadłem na to.
A jeśli nie Getem?
I potem odbieram to w pliku jak $_POSTEM czy jak?
albo
Dzięki, tylko własnie jak to potem odbieram?
skoro nie GETem to POSTem
Kurcze nie wiem
mam odbierać $_POST['a'] i $_POST['b']
bo coś nie idzie tak
No to moze pokaz jak odbierasz, gdzie odbierasz i co potem z tym robisz...
I jaki problem sobie zrobić var_dump($_POST) i zobaczyć co tam masz?
http://www.php.net/header("Content-Type: application/json;charset=utf-8"); http://www.php.net/echo json_encode([ 'cart' => $_POST['a'], ]);
No i sprawdzales co to zwraca?
A najlepiej zrob var_dump calego POST jak napisal Pyton
W sumie źle trochę się wyraziłem bo w tym przypadku nie chcę nic wysyłać $_POSTem tylko po prostu przekazać do ajaxa 2 zmienne bez wysyłania formularza.
Tak jakby uruchomić ajaxa clickiem a nie sumbitem.
I wtedy jak tu odebrać te dane
tak samo?
Pomyślałem że nie da się wywołać tego var_dump($_POST) kiedy nie wysyła się formularza
To serio nie wiem jak wywołać ten var_dump. Kombinowałem na kilka sposobów i dajcie proszę jakąś podpowiedź
Problem leży w tym że nie mogę odebrać tych danych $_POSTem.
W tym naszym przykładzie zmienne nazywają się "a" i "b" próbuje w sposób $_POST['a'] i nie wiem czy powininem do tego dodać jakiś przedrostek lub odczytać to w specyficzny sposób. A na przy formularzu wysyłanym przez AJAX nie mogę wywołać tego var_dump.
No nikt ale kiedy próbuje go wywołać nie mam żadnego zwrotu
Uzywasz narzedzi developerskich w przegladarce? Masz tam wszystkie AJAX jakie ida oraz co zwracaja
Spoko sprawdziłem na dobrym kodzie z AJAXem, faktycznie widać jakie dane idą i jakie się zwracają.
W przypadku użycia kodu:
var data = $(this).http://www.php.net/serialize(); data['a'] = 5; data['b'] = 10; $.ajax({ url: 'cart.php', method: 'POST', data: data })
var data = { 'a': 5, 'b': 10, }; $.ajax({ url: 'cart.php', method: 'POST', data: $(this).http://www.php.net/serialize().concat(data) })
Przykład 2:
var data = { 'a': 5, 'b': 10, }; $.ajax({ url: 'cart.php', method: 'POST', data: data })
$('#form1').on('submit', function(event) { event.preventDefault(); var data = $(this).serializeArray(); data.push({name: "a", value: 5}); data.push({name: "b", value: 10}); console.log(data); $.ajax({ url: 'cart.php', method: 'POST', data: data }) });
Wystarczyło zmienić w drugim przykładzie to:
data: $(this).serialize().concat(data)
na:
data:data
I wszystko pięknie śmiga. Nie wiem czego z tym "concat" nie działało. Ale ok wielkie dzięki tak myślałem że to głupi błąd
@Lowiczak co bys sie nie zdziwil....
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/concat
A nie dzialalo bo do zserializowanego tekstu nie mozesz od tak sobie dodac innego tekstu i nie naruszyc struktury porpzedniego
ale data nie jest u niego stringiem, jego zwrotka to było [object Object]
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)