2011-03-25 11 views
0

Dans ce qui suit peut une forme être envoyée par demande JSON qui a un fichier et et une zone de texte en it.I je utilise django sur le côté serveurJSON soumettre envoyer un formulaire

<script> 
var uploadform=$("#upload_form").val(); 
function send_data(paramarr,url) { 
    $.post(url, paramarr, 
    function callbackHandler(ret) { 

    }, 
    "json" 
    ); 
} 
</script> 

<form id="upload_form"> 
    <input type="text" name="field_name" >Name: 
    <input type="file" name="field_name" >Upload: 
</form> 
+0

var uploadform = $ ("upload_form") val();. n'est pas correcte. vous devez d'abord utiliser var uploadform = $ ("# upload_form"). val(); et ne peux pas comprendre pourquoi vous avez écrit $ ("# upload_form"). val(). ce qu'il va vous rendre? – AEMLoviji

Répondre

0

Avez-vous étudié Fonction serialize() de jquery? Cela vous permet de prendre un formulaire, de le sérialiser en une chaîne et de le passer en paramètre.

http://api.jquery.com/serialize/

var str = $("#upload_form").serialize(); 
$.post("test.php", str, function (ret){ 

},"json"); 

EDIT:

Je ne certes pas remarqué qu'il était un téléchargement de fichier. Les téléchargements de fichiers ne peuvent pas être effectués de cette manière. Check out Uploadify

0

Vous ne serez pas en mesure de faire des téléchargements de fichiers via post() ou ajax(). Vous devrez soit utiliser un iframe, soit utiliser une bibliothèque d'assistance qui, pour l'essentiel, le fera automatiquement pour vous. Rechercher le jQuery plugin site pour un grand nombre de solutions de rechange.

0

Vous pouvez créer un formulaire dynamiquement en extrayant le balisage de formulaire du serveur. Cependant, quelques problèmes

  1. Si les données extraites contient JavaScript, il ne sera pas évalué (i, e navigateur. Ignore. Vous devez eval manuellement)
  2. Lorsque vous soumettez le formulaire chargé, selon elle la page entière (Vous devez utiliser Ajax pour soumettre uniquement ce formulaire, et conserver le reste de la page tel quel).
  3. Si le formulaire contient des balises de fichier, cela ne fonctionnera pas (Vous devez contourner ce problème, en créant un cadre masqué , charge des éléments de formulaire dedans, soumet et enlève le formulaire caché)
0

Ajoutée à la note de jm_toball Si vous êtes capable de faire des téléchargements de fichiers via post() ou ajax(), vous pouvez essayer d'utiliser le plugin jQuery forms. Je ne l'ai pas utilisé le plugin pour le téléchargement de fichiers, mais leur FAQ dit leur plug-in supporte:

http://jquery.malsup.com/form/#faq

Questions connexes