Отредактируйте существующую функцию jQuery, чтобы добавить загружаемый файл

У меня есть рабочий код, но я хочу добавить поле для загрузки изображения, но безуспешно. Мой текущий код:

Форма:

<form id="add_product_form" enctype="multipart/form-data">
    <input id="uploadFile" type="file" name="image" class="img" /><br />
    <input id="status" type="checkbox" checked /><br />
    <input id="product" type="text" /><br />
    <label for="button" id="response"></label>
    <input type="button" id="button" value="Добави" /><br />
</form>

JQuery:

<script type="text/javascript">
$('document').ready(function(){
    $('#button').click(function(){

        var image = $('input[type=file]').val().split('\\').pop();
        function chkb(bool){ if(bool) return 1; return 0; } var status=chkb($("#status").is(':checked'));
        if($('#product').val()==""){ alert("enter name"); return false; } else { var product = $('#product').val(); } 

        jQuery.post("products_add_process.php", { 
            image: image,
            status: status, 
            product: product
            }, 

        function(data, textStatus) {
            $('#response').html(data);
            if(data == 1){
                $('#response').html("OK");
                $('#response').css('color','green');
                document.getElementById("add_product_form").reset();
            } else {
                $('#response').html("Not OK");
                $('#response').css('color','red');
            }
        });
    });
});
</script>

products_add_process.php:

<?php
$image_name = $_FILES['image']['name'];
$image_type = $_FILES['image']['type'];
$image_size = $_FILES['image']['size'];
$image_tmp_name = $_FILES['image']['tmp_name'];
$status = $_POST['status'];
$product = $_POST['product'];

if($image_name == '') {
    echo "<script>alert('Select image')</script>";
    exit();
    } else {
        $random_digit=rand(0000000000,9999999999);
        $image=$random_digit.$image_name;
        move_uploaded_file($image_tmp_name,"uploads/$image");

        $query=mysql_query("INSERT INTO products(product, image, status) VALUES ('$product', '$image', '$status')");

        if(mysql_affected_rows()>0){
            $response = 1;
            echo "1";
            } else {
            $response = 2;
            echo "2";
            }
        }
?>

Я поставил предупреждение "Выберите изображение", а затем понимаю, что $image_name пусто и, возможно, где-то нужно поместить код, чтобы сказать, что я хочу отправить тип данных. Я пытаюсь добавить в форму enctype="multipart/form-data" но не сработает.

Куда и что нужно добавить в существующий код, чтобы отправлять данные, не внося очень больших изменений, потому что этот код имеет много файлов и будет трудно редактировать большую часть кодов.

Возможно, нужно добавить, что форма и jQuery находятся в php-файле, который вызывается в другом материнском файле, и структура выглядит примерно так:

products.php /call products_add.php/
   products_add.php /where is the form and jQuery/
       products_add_process.php /called from products_add.php to upload data/

ps Извините, если я не объясню свою проблему хорошо, но я скоро из stackru и все еще учусь публиковать свои вопросы:)

0 ответов

Другие вопросы по тегам