2011-09-30 104 views
1

我一直在嘗試在過去的幾天裏,在jQuery中序列化一個表單,並將它傳遞給php。出於某種原因,它只是不工作...問題,你採取什麼步驟序列化在JQuery中的表單...我得到表單的ID傳遞到$('#fomrID')。serialize()。 ..在jQuery中序列化表單並將其傳遞到php

而且它仍然不起作用。當我用螢火蟲調試時我所得到的只是一個空字符串...你使用表單的名稱或ID。你使用e.disableDefalut或者其他什麼?我想不通,爲什麼我不能序列我的表格請幫助

$('#profilepicbutton').change(function(){ 
    alert("Boy I hate PHP"); 
    var formElement = $('#profilepicinput').attr('value'); 
    dataString = $("#registerpt3").serialize(); 
    $.ajax({ 
      type: "POST", 
      url: "register3.php", 
      data: dataString, //"profilePic="+formElement, 
      success: function(data){ 
       alert("Data Saved: " + data); 
       $.ajax({ 
        type: "POST", 
        url: "retrievePic.php", 
        data: "",     
        success: function(data){ 
         alert(data); 
         var image = new Image(); 
         $(image).load(function(){ 
          console.log("we have uploaded this image"); 
         }).attr('src', 'images/'); 
         alert("");      
        }, 
        error: function(msg){ 
         alert(""); 
        } 
       }); 
      }, 
      error:function(msq){ 
       alert("" + msg); 
      } 
     } 
    ); 
}); 


    <form id="registerpt3" name="registerpt3" enctype="multipart/form-data" action="register3.php" onSubmit="" method="post"> 
<input name="profilepicinput" type="file" id="profilepicbutton" /> 
</form> 
+0

你還沒有聲明dataString。 – Mark

回答

2

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

對於要包含在序列化的字符串形式元素的值,該元素必須有名稱屬性。僅當檢查複選框和單選按鈕(「收音機」或「複選框」類型的輸入)時,纔會包含這些值。 來自文件選擇元素的數據未被序列化。

此外,簡單地調用序列化將不會實際上傳你的照片。如果你想做一個異步圖片上傳(或任何文件),我建議看看像Uploadify:http://www.uploadify.com/

+0

那麼,這一切都很好,但爲什麼地球上不是我的PHP腳本根本得不到文件?我只想使用免費的實用程序。我正在嘗試實施valumns解決方案(在最終找到它之後)。我不明白爲什麼我的PHP腳本根本無法工作... – SoftwareSavant

+0

有兩個原因,1)serialize()實際上並沒有從文件元素中獲取數據。第二個是與文件上傳有關,做一些關於PHP文件上傳的搜索引擎,這將教你所有你需要知道的。 –

相關問題