Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX]Formularz przesyłany ajaxem input + file
casperii
post
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:
  1. (function() {
  2.  
  3. "use strict";
  4.  
  5. var saveForm = {
  6.  
  7. initialized: false,
  8.  
  9. initialize: function() {
  10.  
  11. if (this.initialized) return;
  12. this.initialized = true;
  13.  
  14. this.build();
  15. this.events();
  16.  
  17. },
  18.  
  19. build: function() {
  20.  
  21. this.validations();
  22.  
  23. },
  24.  
  25. events: function() {
  26.  
  27.  
  28.  
  29. },
  30.  
  31. validations: function() {
  32.  
  33. var saveform = $("#meform"),
  34. url = saveform.attr("action");
  35.  
  36. saveform.validate({
  37. submitHandler: function(form) {
  38. $.ajax({
  39. type: "POST",
  40. url: url,
  41. data: {
  42. "nickname": $("#meform #nickname").val(),
  43. "mefile": new FormData($("#meform #mefile").val())
  44. },
  45. cache: false,
  46. contentType: false,
  47. processData: false,
  48. });
  49. }
  50. });
  51.  
  52. }
  53.  
  54. };
  55.  
  56. saveForm.initialize();
  57.  
  58. })();


PHP:
  1. print_r($_FILES);
  2. echo '<br>';
  3. echo 'GET: ' . $_GET['nickname']; // pokazuje GET
  4. echo 'POST: ' . $_POST['nickname']; // nie pokazuje tutaj POST


ktoś rzuci okiem i napiszę gdzie robię błąd?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 16:37