2011-03-25 110 views
0

在下面可以的形式通过具有文件和文本框它。我现在用在服务器端JSON提交发送形式

<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()。是不正确的。首先你必须使用var uploadform = $(“#upload_form”)。val();并不能理解为什么你写了$(“#upload_form”)。val()。它会回报你什么? – AEMLoviji 2011-03-25 11:00:30

回答

0

你看着Django的JSON请求发送jquery的serialize()函数?这使您可以获取表单,将其序列化为字符串,并将其作为参数传递。

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

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

},"json"); 

编辑:

我固然没有注意到这是一个文件上传。文件上传不能以这种方式完成。检出Uploadify

0

您将无法通过post()或ajax()进行文件上传。你将不得不使用一个iframe或者使用一个辅助函数库,这个函数库基本上会自动为你做。搜索jQuery plugin site有大量的选择。

0

您可以通过从服务器获取表单标记来动态创建表单。然而,一些问题

  1. 如果获取的数据中包含的JavaScript,它不会被评估(I,E,浏览器会忽略它。你必须手动EVAL吧)
  2. 当您提交的加载形式,它提交整个页面(您必须使用Ajax仅提交该表单,并保留原来的页面其余部分)。
  3. 如果表单包含文件标记,它将无法工作(您需要通过创建隐藏帧来解决此问题,加载表单中的项目,提交并删除隐藏的表单)
0

添加到jm_toball关于no t可以通过post()或ajax()进行文件上传,您可以尝试使用jQuery表单插件。我没有用于文件上传插件,但他们的常见问题说,他们的插件支持它:

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