在现有的ajax代码中添加图像上传function
我的代码在这里工作正常,除了图片上传 它将所有数据插入数据库中。
但是在php中添加文件类型输入之后就会显示出来
注意:未定义的索引:第18行的C:\ xampp \ htdocs \ upload \ submit.php中的image2
如何在现有代码中添加图像上传function。
$(document).ready(function() { // submit form using $.ajax() method $('#reg-form').submit(function(e){ e.preventDefault(); // Prevent Default Submission $.ajax({ url: 'submit.php', type: 'POST', data: $(this).serialize() // it will serialize the form data }) .done(function(data){ $('#form-content').fadeOut('slow', function(){ $('#form-content').fadeIn('slow').html(data); }); }) .fail(function(){ alert('Ajax Submit Failed ...'); }); });
submit.php
您可以使用FormData,我建议您可以更改表单的元素ID,现在所有这些都有(’lname’)尝试使用当前的:
在你的HTML中,为你的文件输入添加一个ID
并更改其他输入的id。
在您的JavaScript中:
var frmData = new FormData(); //for the input frmData.append('image2', $('#image2')[0].files[0]); //for all other input $('#reg-form :input').each(function(){ if($(this).attr('id')!='image2' ){ frmData.append($(this).attr('name'), $(this).val() ); } }); $.ajax( { url: 'URLTOPOST', type: 'POST', data: frmData, processData: false, contentType: false }).done(function( result ) { //When done, maybe show success dialog from JSON }).fail(function( result ) { //When fail, maybe show an error dialog }).always(function( result ) { //always execute, for example hide loading screen });
在PHP代码中,您可以使用$ _FILE访问图像,使用$ _POST访问输入
FormData()适用于现代浏览器 。如果您想要较旧的浏览器支持,请使用malsup / form插件
你的表格
Javscript
在php extract($_POST)
中获取所有输入数据和$_FILE
文件