ajax 表单处理程序,AJAX/jQuery的/ PHP - AJAX表单处理程序 “非法调用”

我试图创建AJAXform handler。问题是我在上传图片文件时遇到了麻烦。AJAX/jQuery的/ PHP - AJAX表单处理程序 “非法调用”

上传的文件会导致:

Uncaught TypeError: Illegal invocation

我想这是因为我AJAXformhandler有processData设置为默认值,因此不能文件转换成字符串。 但是,如果我将processData设置为false,那么发送的数据将不会被我的php文件识别。

我怎么能让这个表单发送文件和字符串,然后在PHP中读取它们?

这里是我的阿贾克斯/ jQuery的:

$('#createcompany').click(function() {

var formData = {

'ownerid' : $('#id').text(),

'companyname' : $('#companyname').val(),

'logo' : $('#logo')[0].files[0],

'investment' : $('#investment').val(),

'payment' : $('#payment').val(),

'companytype' : $('#companytype').val(),

'companyresource' : $('#companyresource').val()

};

$.ajax({

type : 'POST',

url : 'processcreatecompany.php',

data : formData,

dataType : 'json',

encode : true

}).done(function(data) {

console.log(data);

}).fail(function(data) {

console.log(data);

})

});

而且我PHP数据接收线:

$ownerid = filter_input(INPUT_POST, 'ownerid', FILTER_SANITIZE_STRING);

$companyname = filter_input(INPUT_POST, 'companyname', FILTER_SANITIZE_STRING);

$investment = filter_input(INPUT_POST, 'investment', FILTER_DEFAULT);

$payment = filter_input(INPUT_POST, 'payment', FILTER_DEFAULT);

$companytype = filter_input(INPUT_POST, 'companytype', FILTER_SANITIZE_STRING);

$companyresource = filter_input(INPUT_POST, 'companyresource', FILTER_SANITIZE_STRING);

文件的要求我会使用这样的:

$_FILES['logo']

编辑:形式的

HTML标记(有点乱,因为我刚加入的形式能够调用它):

BASIC INFORMATION

Company name:

First investment amount:

Basic wage per EP:

AREA OF ECONOMY

Company type:

Choose company type

Resource gathering (5.000 eDollars)

Processing/manufacturing (15.000 eDollars)

Production (30.000 eDollars)

Labolatory (100.000 eDollars)

Architecture development (500.000 eDollars)

Innovations (1.000.000 eDollars)

Resource:

Choose resource

Lumbermill (Wood)

Quarry (Stone)

Mine (Ore)

Mine (Coal)

Farm (Food)

Farm (Leather and cloth)

Create

+0

要上传二进制数据你需要使用一个FormData对象,而不是一个普通的对象。您还需要在'$ .ajax'调用中将'contentType'和'processData'设置为'false'。请参阅副本以获取更多信息 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值