Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax] input type=file
Forum PHP.pl > Forum > XML, AJAX > AJAX
lenczewski
witam mam kod (sciągnełem z jakieś strony), dodałem pole typu FILE, ale nie wiem dlaczego nie przekazuje go do dalszej części
  1. <? $sid = md5( uniqid( rand(), true ) ); ?>
  2.  
  3. <form method="post" action="upload.php" id="<?=$sid?>">
  4. <input type="hidden" name="act" value="post">
  5.  
  6. <input type="file" name="img" value="">
  7.  
  8. <input type="hidden" name="SUBMIT" value="">
  9. <input type="submit" name="zapisz" value="Zapisz" onClick="ajaxform( '<?=$sid?>', 'ZAPISZ' );"/>
  10. </form>


Funkcja do której to idzie:

  1. function ajaxform( nameID, submitvalue, ResponseId )
  2. {
  3. if ( document.getElementById(nameID).SUBMIT != "undefined" )
  4. {
  5. document.getElementById(nameID).SUBMIT.value = submitvalue;
  6. }
  7.  
  8. if( ResponseId == undefined )
  9. {
  10. ResponseId = 'contentAJAX';
  11. }
  12.  
  13. if ( arrElement[nameID] != 1 )
  14. {
  15. advAJAX.assign(document.getElementById(nameID), {
  16. onLoading : function() {
  17. contentHTML = document.getElementById( ResponseId ).innerHTML;
  18. document.getElementById( ResponseId ).innerHTML = document.getElementById( 'loadtemplate2' ).innerHTML;
  19. },
  20. onSuccess : function(obj) {
  21. document.getElementById( ResponseId ).innerHTML = obj.responseText;
  22. ajaxDebug( obj.responseText );
  23. },
  24. onError : function(obj) {
  25. document.getElementById( ResponseId ).innerHTML = contentHTML;
  26. window.alert('Wystąpił nieoczekiwany błąd. Powtórz operację.');
  27. }
  28. });
  29. }
  30.  
  31. if (document.getElementById(nameID) != "null" )
  32. {
  33. arrElement[nameID] = 1;
  34. }
  35.  
  36. return false;
  37. }
Skobi
ajaxem pliku nie wyslesz. A co do kodu to moj kod smile.gif
NetJaro
Nie wyślesz?

Google umie ;-)
jarrod
Cytat(lenczewski @ 11.10.2006, 15:05:55 ) *
  1. <form method="post" action="upload.php" id="<?=$sid?>">
  2. <input type="hidden" name="act" value="post">
  3.  
  4. <input type="file" name="img" id="img" value="">
  5.  
  6. <input type="hidden" name="SUBMIT" value="">
  7. <input type="submit" name="zapisz" value="Zapisz" onClick="ajaxform( '<?=$sid?>', 'ZAPISZ' );"/>
  8. </form>



Przede wszystkim brakuje w kodzie elementów "id". W pole input dodałem id="img".

Po drugie - javascriptem to ci się nie uda (przesyłanie plików).
Owszem - google to robi ale jeśli nie wiesz jak to wróć na stronę xajax i przeczytaj jak winksmiley.jpg
Aby to zrobić będziesz potrzebować jeszcze php (najprościej)
i tam znajduje się właściwy kod do obróbki plików na serwerze. Bo niby jak na serwerze javasctiptem przeniesiesz plik z /tmp do /twojego_katalogu ? JS działa tylko po stronie klienta. Ajax wysyła żądanie do serwera i wywoływany jest konkretny skrypt. I to on dopiero odbiera plik. Po zakończeniu działania skryptu zwracana jest odpowiedź do klienta (przeglądarki) i widoczny jest jakiś efekt...
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.