2011-03-25 117 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