Php 如何使用jQuery&;提交表单;AJAX

Php 如何使用jQuery&;提交表单;AJAX,php,jquery,ajax,Php,Jquery,Ajax,我尝试用jQuery和ajax上传文件。我写了这封信,但没用。我无法提交表格。我想上传文件而不刷新页面。单击按钮后,控制台日志中没有任何信息 <form id="uploadForm" name="uploadForm" style="margin-bottom: 0px; float: left; padding-left: 10px;" enctype="multipart/form-data" action=""> <div class="input-append

我尝试用jQuery和ajax上传文件。我写了这封信,但没用。我无法提交表格。我想上传文件而不刷新页面。单击按钮后,控制台日志中没有任何信息

<form id="uploadForm" name="uploadForm" style="margin-bottom: 0px; float: left; padding-left: 10px;" enctype="multipart/form-data" action="">
    <div class="input-append">
    <input class="span3" id="filename" name="filename" type="file" title="Add DailyReport.tsv"  />
    <button type="button" class="btn" id="uploadFile">Submit</button>
    </div>
</form>

<script type='text/javascript'>
    $("#uploadFile").on('click',function(){
        $("#uploadForm").submit(
            function(e){

                e.preventDefault();
                var url = '../ajax/uploadFile.php';
                var data = new FormData($('.uploadForm'));
                console.log('Submitting');

                $.ajax({
                    type: 'POST',
                    url: url,
                    data: data,
                    cache: false,
                    contentType: false,
                    processData: false
                }).done(function(data) {
                        console.log(data);
                    }).fail(function(jqXHR, status, errorThrown) {
                       console.log(errorThrown);
                       console.log(jqXHR.responseText);
                       console.log(jqXHR.status);
                   });
            });
    });
</script>

提交
$(“#上载文件”)。在('单击',函数()上{
$(“#上传表单”)。提交(
职能(e){
e、 预防默认值();
var url='../ajax/uploadFile.php';
var data=newformdata($('.uploadForm'));
console.log(“提交”);
$.ajax({
键入:“POST”,
url:url,
数据:数据,
cache:false,
contentType:false,
processData:false
}).完成(功能(数据){
控制台日志(数据);
}).fail(函数(jqXHR、状态、错误抛出){
console.log(错误抛出);
log(jqXHR.responseText);
console.log(jqXHR.status);
});
});
});
PHP

if ($_FILES["filename"]["error"] > 0)
  {
  echo "Error: " . $_FILES["filename"]["error"] . "<br>";
  }
else
  {
  echo "Upload: " . $_FILES["filename"]["name"] . "<br>";
  echo "Type: " . $_FILES["filename"]["type"] . "<br>";
  echo "Size: " . ($_FILES["filename"]["size"] / 1024) . " kB<br>";
  echo "Stored in: " . $_FILES["filename"]["tmp_name"];
  }
if($\u文件[“文件名”][“错误”]>0)
{
回显“错误:”.$\u文件[“文件名”][“错误”]。“
”; } 其他的 { echo“上传:”.$\u文件[“文件名”][“名称”]。“
”; 回显“类型:”.$\u文件[“文件名”][“类型”]。“
”; 回显“大小:”($_文件[“文件名”][“大小”]/1024)。“kB
”; echo“存储在:“.$”文件[“文件名”][“tmp_名称”]; }
jQuery无法通过AJAX发布包含上载字段的表单


但是如果您愿意,请尝试使用应检查数据输入的。您可以使用serialize()方法从表单获取参数。您的代码可能会发生以下更改:

$("#uploadFile").on('click',function(){   
        var url = '../ajax/uploadFile.php';
        var data = $("form#uploadForm").serialize();
        console.log('Submitting');

        $.ajax({
            type: 'POST',
            url: url,
            data: data,
            cache: false,
            contentType: false,
            processData: false
        }).done(function(data) {
               ...
        }).fail(function(jqXHR, status, errorThrown) {
              ...
        });
    });

}))

我没有看到任何ID等于
uploadForm
的元素表单是ID的#uploadForm您刚才忘记了
标记吗?@dido所以发布相关标记