如何使用php jquery ajax上传文件和插入数据
我无法通过ajax发送到ajax的php文件上传和数据. This my code just send file upload
.数据无法发送到我的PHP代码.我创建表单,并使用ajax在php上单击发送函数. I'm using codeigniter
I cannot send via ajax to php file upload and data with ajax. This my code just send file upload
. data not send to my php code. I create form and the function send on click using ajax to post on php. I'm using codeigniter
这是我的表格:
<form action="<?php echo site_url('home/send_chat');?>" method="post" enctype="multipart/form-data">
<input name="message" id="message" type="text" class="form-control input-sm" />
<input type="file" id="file" name="file" />
<br />
<span class="input-group btn">
<button type="submit" class="btn btn-info btn-sm" id="submit">Enkripsi</button>
</span>
</form>
此javascript使用ajax在php上发送帖子:
This javascript to send post on php using ajax:
$('#submit').on('click', function(){
var message = $('#message').val();
var fd = new FormData(this);
fd.append('file',$('#file')[0].files[0]);
$.ajax({
method:"POST",
url:"<?php echo site_url('home/send_chat');?>",
data: {fd,message:message},
cache: false,
contentType: false,
processData: false,
success: function(data){
alert(data);
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
});
});
我已经尝试使用$_POST['message'];
和$this->input->post("message");
,但两者均不起作用
此php处理代码:
I'm already try using $_POST['message'];
and $this->input->post("message");
its not work both
This php to proces code:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller {
public function send_chat()
{
$name = $_FILES['file']['name'];
$error = $_FILES['file']['error'];
$size = $_FILES['file']['size'];
// $message = $_POST['message'];
$message = $this->input->post("message");
$user = $this->session->userdata('username');
$iduser = $this->session->userdata('userID');
$insert="insert into chat (user,message,id_user,fileupload) VALUES ('$user','$message','$userid','$name')";
$this->db->query($insert);
}
}
在数据库中,我只是发送名称文件upload.user,消息和iduser而不发送.
In database i'm just send name file upload.user, message, and iduser its not send.
我认为您的问题可能出在ajax代码中 由于您正在使用formData对象.尝试在其中附加message变量
i think your problem may be in ajax code since you are using formData object . try append the message variable with it
$('#submit').on('click', function(){
var fd = new FormData(this);
fd.append('file',$('#file')[0].files[0]);
fd.append('message ',$('#message').val());
$.ajax({
method:"POST",
url:"<?php echo site_url('home/send_chat');?>",
data: fd,
cache: false,
contentType: false,
processData: false,
success: function(data){
alert(data);
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
});
});