上载文件不适用于ajax [英] Upload file not work with ajax

查看:66
本文介绍了上载文件不适用于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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆