AJAX提交表单..数据未发送

时间:2010-08-19 12:42:18

标签: javascript php ajax forms upload

  

我一直在与这件作品作斗争   几天的代码现在......   非常感谢任何帮助

     

脚本调用php文件   命中提交键时出现问题。   但是,它不会发布表单数据   用它。

     

HTML表单

<form id="image_form" name="image_form" method="POST"
     

行动= “”   ENCTYPE = “多部分/格式数据” &GT;            文件:                                   

     

Javascipt

$(function() {
$(".submit").click(function() {
  var obj = document.getElementById("form_div");
  var load = document.getElementById("load");
   jQuery.ajax({
    type: "POST",
    name: "image",
    url: "upload_imagel.php",
    enctype: "multipart/form-data",
    beforeSend: function(){
     obj.style.display = 'none';
     load.innerHTML = "<img src='../images/misc/ajax-loader.gif'
     

/&gt;“中;           },           错误:function(){            警报('错误已发生');           },           超时:5000,           成功:功能(结果){            load.style.display ='none';            obj.style.display ='block';           }          })          返回false;         });       });

     

PHP

     

以下是空的

$image=$_FILES['image']['name'];

感谢pekka,我将以下AJAX更改为

$(document).ready(function() { 
    var obj = document.getElementById("form_div");
    var load = document.getElementById("load");

    var options = { 
        beforeSend: function(){
             obj.style.display = 'none';
             load.innerHTML = "<img src='../images/misc/ajax-loader.gif' />";
            },
        success: function(){
             load.style.display = 'none';
             obj.style.display = 'block';
            },
        type:      'POST', 
        timeout:   5000 
    }; 

    $('#image_form').submit(function() { 
        $(this).ajaxSubmit(options); 
        return false; 
    }); 
}); 

然而仍然遇到同样的问题

$image=$_FILES['image']['name'];

仍然空着:(

P.S。 html表格标题现在是

<form id="image_form" method="POST" action="sMain/upload_image_small.php" enctype="multipart/form-data">

我错过了什么吗?

3 个答案:

答案 0 :(得分:2)

使用AJAX无法进行文件上传,因为您的脚本无法对客户端计算机上的文件进行读取访问。

您可以查看使用隐形iframe的jQuery form plugin来实现此目标。

答案 1 :(得分:0)

您可以尝试使用Plupload(http://www.plupload.com)。它具有很多功能,适用于文件上传。

答案 2 :(得分:0)

Pekka确实有效,我的php文件中输入了一个拼写错误。太烦人了。

谢谢..也通过不同的论坛发现了这个

http://www.ajaxf1.com/tutorial/ajax-file-upload-tutorial.html

感谢你们两位的帮助。