Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SimpleAjaxUploader
Forum PHP.pl > Forum > XML, AJAX
umatik
Czy kotś w Was miał do czynienia z tym dodatkiem ?
https://github.com/LPology/Simple-Ajax-Uploader

Generalnie wszystko działa ok, tylko skrypt nie chce mi przesłać na serwer dodatkowych danych

Wg manuala http://www.lpology.com/code/ajaxuploader/docs.php
do wysyładnia dodatkowych danych służy "data", więc zrobiłem mały test:
[JAVASCRIPT] pobierz, plaintext
  1. var uploader = new ss.SimpleUpload({
  2. button: btn,
  3. url: 'upload_file.php',
  4. progressUrl: 'uploader/extras/uploadProgress.php',
  5. name: 'uploadfile',
  6. maxSize: 1024,
  7. allowedExtensions: ['jpg', 'jpeg', 'png', 'pdf', 'doc', 'docx', 'xls', 'xlsx'],
  8. hoverClass: 'btn-hover',
  9. focusClass: 'active',
  10. disabledClass: 'disabled',
  11. responseType: 'json',
  12. data: {id: 100},
  13. onComplete: function(filename, response) {
  14. alert(response.id)
  15. }
  16. )}
[JAVASCRIPT] pobierz, plaintext

W pliku PHP (upload_file.php) obsługującym wysyłanie pliku dodałem:
  1. echo json_encode(array('success' => true, 'file' => $Upload->getFileName(), 'id' => $_POST["id"] ));

Niestety zmienna "id" nie wraca do skryptu (pojawia sie pusty alert). Dlaczego, gdzieś popełniam błąd ?
werdan
Daj w pliku PHP:
  1. var_dump($_POST);


a w js:
  1. onComplete: function(filename, response) {
  2. console.log(response);
  3. }


Zobacz na konsoli co sie tam dzieje.
mozesz tez podejrzec odpowiedz skryptu PHP w Firebug/devtool -> Zakładka Sieć/Net biggrin.gif
umatik
hmm ... coś dalej jest nie tak, chociaż w konsoli widzę że zmienna id "wychodzi", to funkcja obsługująca onError zwaca mi błąd:
errorType - parseerror
status - 200

no i id nie "wraca" do skryptu

Dodatkowo w pliku PHP dodałem zapis do pliku TXT, plik TXT jest generowany ale pusty, czyli tak jak by w pliku PHP nie było tablicy POST
ssstrz
uwielbiam takie podejscie do rozwiazywania bledow, kolega wyzej radzi ci co zrobic dac var_dumpa i loga a ty dodajesz jakies niepotrzebne narazie zapisy do pliku i placzesz ze nie ma tablicy post no czarny normalnie... ehhh a zeby wkleic to co ci zwrocily tamte funkcje tu na forum to juz ci do glowy nie wpadlo....
umatik
Użycie var_dump($_POST) w pliku upload_file.php spowodowało błąd, jak pisałem: errorType - parseerror, status - 200
błąd jest przechwycony przez:
[JAVASCRIPT] pobierz, plaintext
  1. onError: function( filename, errorType, status, statusText, uploadBtn ){
  2. alert(errorType+" / "+status+" / "+statusText)
  3. },
[JAVASCRIPT] pobierz, plaintext

także skrypt nie dochodzi do :
[JAVASCRIPT] pobierz, plaintext
  1. onComplete: function(filename, response) {
  2. console.log(response);
  3. }
[JAVASCRIPT] pobierz, plaintext


więc nie mam co wkleić ...
werdan
onComplete wykonuje sie zawsze czy jest success czy error.

Sprawdz w firebug/devtool:

- zakładka Konsole/Console - co tam masz?
- zakłądka Sieć/Net - zobacz co odpowiada skrypt PHP (ostatni wpis).

Jak znajdziesz to wklej.
umatik
Bez var_dump($_POST);

Konsola z firebuga pokazuje

POST http://...../upload_file=7842_627999460578073_362010716_n.jpg&id=100 - 200 OK -144ms

Zakładka "parametry":
id 100
uploadfile 7842_627999460578073_362010716_n.jpg

Zakładka "odpowiedź":
{"success":true,"file":"7842_627999460578073_362010716_n.jpg","id":null}

Sieć z firebuga pokazuje

Zakładka "parametry":
id 100
uploadfile 7842_627999460578073_362010716_n.jpg

Zakładka "odpowiedź":
{"success":true,"file":"7842_627999460578073_362010716_n.jpg","id":null}


Z var_dump($_POST) dodanym na samym końcu pliku PHP:

Konsola z firebuga pokazuje

POST http://...../upload_file=7842_627999460578073_362010716_n.jpg&id=100 - 200 OK -144ms

Zakładka "parametry":
id 100
uploadfile 7842_627999460578073_362010716_n.jpg

Zakładka "odpowiedź":
{"success":true,"file":"7842_627999460578073_362010716_n.jpg","id":null} array(0) {}

Sieć z firebuga pokazuje

Zakładka "parametry":
id 100
uploadfile 7842_627999460578073_362010716_n.jpg

Zakładka "odpowiedź":
{"success":true,"file":"7842_627999460578073_362010716_n.jpg","id":null} array(0) {}


ps.
gdyby onComplete było wykonane pomimo błędu to

[JAVASCRIPT] pobierz, plaintext
  1. onComplete: function(filename, response) {
  2. alert("alamakota")
  3. }
[JAVASCRIPT] pobierz, plaintext

powino wyświetlić alert, a nie wyświetla, z tego wnoszę że onComplete nie jest wykonywane.

werdan
> gdyby onComplete było wykonane pomimo błędu to powino wyświetlić alert, a nie wyświetla, z tego wnoszę że onComplete nie jest wykonywane.

Masz racje. Pomyliło mi sie z ajaxem.


Ten obiekt data idzie GETem

http://jsfiddle.net/N5c5j/
umatik
Bardzo dziękuję !
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.