Function PHP

Dear Admin dan master-master PHP,

Mau bertanya. Saya menggunakan Js pada php saya untuk upload file. Untuk textbox dan Select dapat masuk ke database. Tetapi untuk File tidak bisa. Mungkin ada yang salah. Mohon masukkan nya. Apakah Code saya di bawah sudah benar?

INDEX

 <div id="dialog-admin" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel"></h3>
</div>
<!-- tempat untuk menampilkan form admin -->
<div class="modal-body"></div>
<div class="modal-footer">
    <button class="btn btn-danger" data-dismiss="modal" aria-hidden="true">Batal</button>
    <button id="simpan-admin" class="btn btn-success">Simpan</button>
</div>

form file :

 <form class="form-horizontal" id="form-admin" enctype="multipart/form-data" >
<div> ... bla bla bla.. field.. </div>
<div class="control-group">
    <label class="control-label" for="ava">Image</label>
    <div class="controls">
        <input type="file" id="ava" name="ava" value="<?php echo $ava ?>" required="required" />
    </div>
</div>

code for javascript :

 $("#simpan-admin").bind("click", function(event) {
        var url = "admin-proses.php";

        // mengambil nilai dari inputbox, textbox dan select
        var v_username = $('input:text[name=username]').val();
        var v_email = $('input:text[name=email]').val();
        var v_pass = $('input:text[name=pass]').val();
        var v_ava = $('input:file[name=ava]').val();

        // mengirimkan data ke berkas transaksi admin-proses.php untuk di proses
        $.post(url, {username: v_username, email: v_email, pass: v_pass, ava:v_ava, id: id} ,function() {
            // tampilkan data admin yang sudah di perbaharui
            // ke dalam <div id="data-admin"></div>
            $("#data-admin").load(main);

            // sembunyikan modal dialog
            $('#dialog-admin').modal('hide');

            // kembalikan judul modal dialog
            $("#myModalLabel").html("Tambah Data Admin");
        });
    });

and this code for file process :

 require 'dbase.php';
$id = $_POST['id'];
$username   = $_POST['username'];
$email  = $_POST['email'];
$pass   = $_POST['pass'];

$imageName = $_FILES['ava']['name'];
$imageSize = $_FILES['ava']['size'];
$imageError = $_FILES['ava']['error'];

    if ($imageSize > 0 || $imageError == 0){
        $move = move_uploaded_file($_FILES['ava']['tmp_name'], '../uploads/ava/'.$imageName);
        if ($move){
            echo 'success';
        } else {
            echo 'failed';
        }
    } else {
        echo 'failed to save file to DB : '.$imageError;

    }

        mysql_query("INSERT INTO tb_admin VALUES('','$username','$email','$pass','$imageName')") or die (mysql_error());

Saya rasa kesalahan terjadi pada javascript. Mohon bantuan nya.

Terima kasih,

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Diperbarui 6 tahun yang lalu

21 Jawaban:

coba ganti jadi gini

 $('input:file[name=ava]').files
avatar azam007
@azam007

75 Kontribusi 29 Poin

Dipost 6 tahun yang lalu

Masih tidak bisa om @azam007 .. :(

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

coba liat di consolenya gan, mungkin ada error

avatar JoksKur
@JoksKur

139 Kontribusi 49 Poin

Dipost 6 tahun yang lalu

Maksud nya bagaimana gan @Jokskur ? Untuk text dan select berhasil masuk. Tetapi untuk file tidak berhasil. Mohon arahan nya Gan. ^_^

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

 $('input:file[name=ava]').files

kode ini tuh jadinya array, kalo gak multiple upload, coba tambahin

 $('input:file[name=ava]').files[0]

avatar azam007
@azam007

75 Kontribusi 29 Poin

Dipost 6 tahun yang lalu

Sudah saya coba om @azam007..tetapi masih belum bisa..Saya hanya upload 1 file dan bukan multiple upload om..Ada cara lain om? Mohon pencerahan nya dan masukkan nya.. Terima kasih sebelumnya.. ^_^

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

ada error kah? coba dump, copy hasilny disini

avatar azam007
@azam007

75 Kontribusi 29 Poin

Dipost 6 tahun yang lalu

oiya, coba tambahin lagi

 var v_ava= new FormData($('input:file[name=ava]').files[0]))
avatar azam007
@azam007

75 Kontribusi 29 Poin

Dipost 6 tahun yang lalu

Tidak ada error nya om @azam007. Tetapi tidak masuk ke database dan tidak berhasil move to folder. Apakah masih ada yang salah kah?

Terima kasih ya om dan mohon pencerahan nya.

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

total scriptnya mungkin jadi seperti ini


$("#simpan-admin").bind("click", function(event) {
        var url = "admin-proses.php";

        // mengambil nilai dari inputbox, textbox dan select
        var inputData = {
            username: $('input:text[name=username]').val(),
            email: $('input:text[name=email]').val(),
            password: $('input:text[name=pass]').val(),
            ava: new FormData($('input:file[name=ava]').files[0])
        }

        // mengirimkan data ke berkas transaksi admin-proses.php untuk di proses
        $.post(url, inputData ,function() {
            // tampilkan data admin yang sudah di perbaharui
            // ke dalam <div id="data-admin"></div>
            $("#data-admin").load(main);

            // sembunyikan modal dialog
            $('#dialog-admin').modal('hide');

            // kembalikan judul modal dialog
            $("#myModalLabel").html("Tambah Data Admin");
        });
    });

avatar azam007
@azam007

75 Kontribusi 29 Poin

Dipost 6 tahun yang lalu

Untuk insert nya masih belum dapat masuk om @azam007 sudah saya coba dan tidak dapat insert om. Apakah ada yang salah ya dari sisi saya ?

 require 'dbase.php';
$id = $_POST['id'];
$username   = $_POST['username'];
$email  = $_POST['email'];
$pass   = $_POST['pass'];

$imageName = $_FILES['ava']['name'];
$imageSize = $_FILES['ava']['size'];
$imageError = $_FILES['ava']['error'];

    if ($imageSize > 0 || $imageError == 0){
        $move = move_uploaded_file($_FILES['ava']['tmp_name'], '../uploads/ava/'.$imageName);
        if ($move){
            echo 'success';
        } else {
            echo 'failed';
        }
    } else {
        echo 'failed to save file to DB : '.$imageError;

    }

        mysql_query("INSERT INTO tb_admin VALUES('','$username','$email','$pass','$imageName')") or die (mysql_error());

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

insertnya belum masuk, berarti pindah file nya udah bisa?

avatar azam007
@azam007

75 Kontribusi 29 Poin

Dipost 6 tahun yang lalu

Masih belum bisa juga om @azam007. Apakah masih ada yang salah kah?

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

coba dump bagian $_FILES['ava']

avatar azam007
@azam007

75 Kontribusi 29 Poin

Dipost 6 tahun yang lalu

bagaimana ya om @azam007 dump nya?

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

var_dump($variablenya)

avatar azam007
@azam007

75 Kontribusi 29 Poin

Dipost 6 tahun yang lalu

Bingung gan om @azam007. Maaf masih newbie. :(

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu


("#simpan-admin").bind("click", function(event) {
        var url = "admin-proses.php";

//Mengambil value dari form
var data = new FormData($('form')[0]);

//Mengirim kan ke server

$.ajax({
    type: 'POST',
    url: url,
    data: data,
    processData: false,
    contentType: false,
    success: function() {
        // handle response here...
// tampilkan data admin yang sudah di perbaharui
            // ke dalam <div id="data-admin"></div>

//main itu darimana ya ?
            $("#data-admin").load(main);

            // sembunyikan modal dialog
            $('#dialog-admin').modal('hide');

            // kembalikan judul modal dialog
            $("#myModalLabel").html("Tambah Data Admin");
    }
});

    });

Ini dengan syarat browser sudah support HTML5 API ya :D Kalau belum ya tinggal di ganti pake serialize() daripada nulis satu2 value dari form nya. Kalau cuma 5 sih gpp kalau 1000 ? atau 10000 ? :v

avatar markeronly
@markeronly

378 Kontribusi 230 Poin

Dipost 6 tahun yang lalu

@markeronly untuk main itu untuk menampilkan data saja.. Lalu cara move to folder nya bagaimana ya om? Misalkan nama folder yang sudah saya buat adalah image. Bagaimana cara move to folder ke sana ya?

Terima kasih dan mohon arahan nya. ^_^

avatar FitriR
@FitriR

109 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

Maksudnya move to folder ? Mau uploadnya ke folder image yang mas pengen ya ?

Itu di koding (backend) mas soal yg berhubungan sama gituan

avatar markeronly
@markeronly

378 Kontribusi 230 Poin

Dipost 6 tahun yang lalu

masih belum solved? move file dan insertnya?

avatar dianarifr
@dianarifr

642 Kontribusi 316 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban