2011-01-27 5 views
0

J'ai cherché à faire un formulaire de téléchargement de photos en utilisant un script AJAX actuel.

Actuellement, j'ai le formulaire html avec l'entrée de fichier, sur soumettre j'ai un événement onclick avec "PostForm(); return false;"

Ceci déclenche un script process.php où la magie se produit (et je travaille). Cependant, j'ai un message de succès et d'échec qui apparaît généralement avec le script de processus retournant une valeur "1" ou "0".

Je peux obtenir le formulaire en utilisant simplement "PostForm();", cependant le message d'erreur apparaît immédiatement, suivi d'être redirigé vers la page de processus qui affiche "1". Si j'ajoute return false; dans l'événement onclick, je reçois un message de réussite, mais aucun fichier n'est téléchargé.

Je suppose que le "retour faux"; commande empêche le téléchargement du fichier. Existe-t-il un moyen d'afficher éventuellement une barre de progression, ou un spinner pendant le téléchargement, puis afficher le message de réussite/échec?

Merci

Update 1
jQuery code

PostForm = function() { 
    $('.text').attr('disabled','true'); 
      var data = $('form').serialize(); 
      $.ajax({ 
       type: 'POST', 
       url: "/lib/mp-update.php", 
       data: data, 
       cache: false, 
       success: function(html) { 
        if(html==1) { 
         $('#success').hide(); 
         $('#success').removeClass(); 
         $('#success').slideUp('50000'); 
         $('form').fadeOut('50000', function() { 
          $('#success').fadeIn('50000'); 
         }); 
        } else { 
         $('#fail').hide(); 
         $('#fail').removeClass(); 
         $('#fail').slideUp('50000'); 
         $('form').fadeOut('50000', function() { 
          $('#fail').fadeIn('50000'); 
         }); 
        } 
       } 
      }); 
      return false; 
     } 
    }); 

PHP fait une instruction switch standard pour identifier quelle forme a été envoyé à partir d'une valeur de forme cachée.

+3

Puis-je voir votre fonction JS? –

+1

Le code serait intéressant à voir, car avec l'ajax pur (XMLHttpRequest), il n'est pas possible d'afficher les paramètres du fichier. – Pointy

+0

n'est pas 'preventDefault()' préféré à 'return false;'? – drudge

Répondre

1

Comme d'autres personnes l'ont mentionné, ou du moins dans la mesure où j'ai pu voir des choses, il n'est pas possible d'obtenir l'effet désiré.

J'ai essayé Uploadify qui fonctionne bien si quelqu'un d'autre a un problème similaire à ce que je faisais - http://www.uploadify.com

Questions connexes