2011-09-30 40 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文件上传的搜索引擎,这将教你所有你需要知道的。 –

相关问题