![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
Proszę o sprawdzenie poniższego kodu, niestety dane mi przesyła GETem chociaż mam ustawione POST, no i nie pobiera wartości z input file.
JS:
PHP: ktoś rzuci okiem i napiszę gdzie robię błąd? |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A skad pomysl ze metode wysylania POST/GET okresla sie parametrem TYPE??
https://api.jquery.com/jquery.ajax/ I sobie zobacz czym okresla sie metode. po co zgadaywac? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Według manuala type jest tym samym co method:
Cytat An alias for method. You should use type if you're using versions of jQuery prior to 1.9.0.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Nie mnie jednak nie dziala wiec moze jedna warto uzyc dedykowanego parametru a nie aliasu. Z aliasami jest ten problem ze z czasem znikaja
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się, że dokumentacja jQuery jest prowadzona dosyć starannie.
Problemem jest raczej wartość processData ustawiona na false, co oznacza, że obiekt z data nie jest parsowany na query string (musimy to robić sami). |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze formularz musi mieć ustawiony prawidłowy enctype i musi być odpowiednio zakodowany, abyśmy mogli użyć WebAPI FormData().
Po drugie jeżeli już używamy FormData() to nieco inaczej, bo na przykład tak jak poniżej.
Po trzecie dane wysyła GET-em, bo pewnie metody nie masz ustawionej w formularzu prawidłowej albo nie masz ustawionej w ogóle. Niemniej o wiele bardziej istotny jest fakt, że pewnie ten cały skrypt w javascript wrzucasz między <head> a </head>, a powinieneś wrzucić przed </body>. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Atrybut enctype formularza nie ma znaczenia dla FormData.
Formularz może mieć dowolny typ przesyłania danych - i tak w żądaniu Ajax ustawiamy własny. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Atrybut enctype formularza nie ma znaczenia dla FormData. Formularz może mieć dowolny typ przesyłania danych - i tak w żądaniu Ajax ustawiamy własny. Po co takie komentarze, które nic nie wnoszą. enctype ma znaczenie, jeżeli chcemy wysyłać pliki. A jeżeli korzystamy z WebApi to konstruktor FormData() odczytuje dane z atrybutów name="" (key) i zatwierdzonych wartości (value). Ten post edytował mortus 14.03.2023, 20:21:20 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dla Ciebie na pewno nic wniósł skoro go nie zrozumiałeś.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Dla Ciebie na pewno nic wniósł skoro go nie zrozumiałeś. Czytanie ze zrozumieniem nie jest raczej Twoją mocną stroną. Nie pisałem nigdzie, że typu danych nie możemy ustawić w żądaniu AJAX a jedynie, że typ multiform/form-data jest niezbędny do wysyłania plików. Z kolei pisałem, że formularz musi być odpowiednio zakodowany (każde pole formularza musi mieć atrybut name, a id nie jest istotne), abyśmy mogli korzystać z WebAPI FormData(). Nigdzie nie było sformułowania, które stwierdzało współzależność enctype i FormData. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie pisałem nigdzie, że typu danych nie możemy ustawić w żądaniu AJAX a jedynie, że typ multiform/form-data jest niezbędny do wysyłania plików. Napisałeś: Cytat(mortus) Po trzecie dane wysyła GET-em, bo pewnie metody nie masz ustawionej w formularzu prawidłowej albo nie masz ustawionej w ogóle. i do tego się odnosiłem, bo skoro dane są wysyłane Ajaxem przez POST, to metoda w formularzu nie ma znaczenia. Odniosłem się również do tego, że multipart/form-data nie jest potrzebny przy używaniu FormData, a tak można rozumieć Twoje stwierdzenie, zgodnie z zasadami języka polskiego: Cytat(mortus) Po pierwsze formularz musi mieć ustawiony prawidłowy enctype i musi być odpowiednio zakodowany, abyśmy mogli użyć WebAPI FormData()[/b]. Wydaje mi się, że forum jest od tego, aby dyskutować, wyrażać swoje opinie, pomysły, dawać wskazówki, korygować, itd. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
To takie sranie w banie... Piszesz, że odnosisz się do ostatniego zdania z mojej odpowiedzi, a słowem o tym wcześniej nie wspomniałeś. Bo mylisz typ przesyłania danych z metodą przesyłania.
Z kolei, jeżeli zrozumiałeś pierwsze zdanie w sposób, w jaki zrozumiałeś, to chyba tutaj trzeba było coś dopowiedzieć (poprawić). Może powinno to wyglądać w ten sposób: "Po pierwsze formularz musi mieć ustawiony prawidłowy enctype. Musi też być odpowiednio zakodowany, abyśmy mogli użyć WebAPI FormData()." I tyle. A Ty po prostu przekręcasz sformułowania. Koledze wysyła dane w $_GET, bo nie ma metody w formularzu ustawionej na POST albo nie ma w ogóle, a jego skrypt się nie wykonuje i następuje przekierowanie na stronę akcji. Ty wyciągasz zdanie z kontekstu wypowiedzi i pomijasz o wiele bardziej istotny ... fakt. Szukasz dziury w całym. A tak na prawdę, to formularz powinien zadziałać prawidłowo nawet wtedy, gdy AJAX nie zadziała, a co za tym idzie musi mieć zarówno ustawiony prawidłowy enctype, jak i odpowiednią method. Taka prawda >< Ten post edytował mortus 15.03.2023, 10:00:35 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ok, Szeryfie, więcej nie będę "bruździł" w Twoim temacie.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.08.2025 - 11:50 |