上载文件不适用于ajax [英] Upload file not work with ajax
本文介绍了上载文件不适用于ajax的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我很想解决这个问题.我的表单无法使用ajax上传文件,但是没有ajax即可正常工作.这是我的代码
I tired to solve this. my form cant upload file using ajax, but it's work without ajax. this's my code
insertpage.php
insertpage.php
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.3.min.js"></script>
<script type="text/javascript">
$('document').ready(function(){
$('#btn').click(function(event){
event.preventDefault();
var x=$('#form1').serializeArray();
$.post(
$('#form1').attr('action'),
x,
function(){
$('.hasil').html('Berhasil Insert');
$('.hasil').fadeOut(5000);
$('input').val("");
$('textarea').val("");
})
})
})
</script>
</head>
<?php
$tanggal = date("Y-m-d");
echo"
<body>
<form id='form1' enctype='multipart/form-data' action='simpanpage.php' method='post'>
<table>
<tr>
<td> Foto </td> <td> : </td> <td> <input type=file name=fotoh id=fotoh> </td>
</tr>
<tr>
<td> Judul </td> <td> : </td> <td> <input type=text name=judul id=judul maxlength='50' size='50' required placeholder='Masukan Judul'> </td>
</tr>
<tr>
<td> Deskripsi </td> <td> : </td> <td> <textarea required id=deskripsi name='deskripsi' > </textarea> </td>
</tr>
<tr>
<td> Isi </td> <td> : </td> <td> <textarea required id=isi name='isi'> </textarea> </td>
</tr>
<tr>
<td> Label </td> <td> : </td> <td> <input type=text id=label name=label placeholder='Masukan Label'><input type=hidden name=tgl_dibuat id=tgl_dibuat value=".$tanggal."> </td>
</tr>
</table>
<br>
<button id='btn'>Save</button>
<br> <div class='hasil'> </div>
</form>
</body>
";
?>
koneks.php
koneks.php
<?php
class database{
private $dbHost = "localhost";
private $dbUser = "root";
private $dbPass = "";
private $dbName = "oop_blog";
function connectMySQL(){
mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
mysql_select_db($this->dbName) or die("Database tidak ada!");
}
function manageinsertPage($judul, $isi, $tgl_dibuat, $deskripsi, $label){
$lokasi = $_FILES["fotoh"]["tmp_name"];
$namafoto = $_FILES["fotoh"]["name"];
$direktori = "gambar/$namafoto";
if (move_uploaded_file($lokasi, $direktori))
{
$qry = mysql_query("INSERT INTO pages(judul,isi,foto,tgl_dibuat,deskripsi,label) VALUES('$judul','$isi','$namafoto','$tgl_dibuat','$deskripsi','$label')");
echo"berhasil Insert Bersama Foto";
}
else{
$qry1 = mysql_query("INSERT INTO pages(judul,isi,tgl_dibuat,deskripsi,label) VALUES('$judul','$isi','$tgl_dibuat','$deskripsi','$label')");
echo"Berhasil";
}
}
?>
simpanpage.php
simpanpage.php
<?php
include "koneks.php";
$dbi = new database;
$dbi->connectMYSQL();
$dbi->manageinsertPage($_POST["judul"],$_POST["isi"],$_POST["tgl_dibuat"],$_POST["deskripsi"],$_POST["label"]);
?>
我只是感到困惑,因为我的表单无法使用ajax读取 $ _ FILES ['fotoh'] ['name'];
,这使我上载失败.答案在数据库中始终为空.我在这里需要帮助,非常感谢
im just confused because, my form cant read $_FILES['fotoh']['name'];
with ajax, that's made me fail when uploading..
the answer allways null in database.
i need help here, thank you so much
推荐答案
在这里进行测试
$('document').ready(function(){
$('#btn').click(function(event){
event.preventDefault();
$.ajax({
url : $('#form1').attr('action'),
type: "POST",
data : new FormData($('#form1')[0]),
processData: false,
contentType: false,
success:function(data){
}
});
})
})
这篇关于上载文件不适用于ajax的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文