0

画像と「ordered」フィールドをdbに保存すると、画像は保存されますが、「ordered」フィールドのそれぞれは同じ値を保存します。「ordered」フィールドがそれぞれに入力した値を正しく保存するように修正する方法についてのアイデアはありますか?

例えば:

image_id | product_id | 注文| 画像| サムネイル
-------------------------------------------------- ------------------
593 | 94 | 35 | a23145b.jpg | a231458.jpg
-------------------------------------------------- ------------------
592 | 94 | 35 | 1348352.jpg | 1348358.jpg

これが私が現在持っているものです:

    if (isset($_FILES['product_image'])) {

        $files = array();

        foreach ($_FILES['product_image'] as $key => $values) {

            foreach ($values as $i => $value)
                $files[$i][$key] = $value;

        }

        foreach ($files as $file) {

            if (!empty($file['name'])) {

                $image = $upload->upload_image($file);
                $thumb = $upload->upload_image($file);

                $values = array(
                    'product_id'    => $product_id, 
                    'image'         => $image,
                    'thumbnail'     => $thumb,
                    'ordered' =>  $_POST['ordered'][0]
                );  

                $db->insert(config_item('cart', 'table_product_images'), $values);

            }

        }

    }

そしてフィールドのjs

var image_row = 0;

$('#add_image').click(function() {

    html  = '<tr id="image' + image_row + '">';
    html += '<td><input type="file" name="product_image[' + image_row + ']" /></td>';
    html += '<td><input type="text" name="ordered[' + image_row + ']" /></td>';
    html += '<td><a href="#" id="remove_' + image_row + '" class="remove_image button orange">Remove</a></td>';
    html += '</tr>';

    $('#images table > tbody').append(html);

    image_row++;

    return false;

});
4

1 に答える 1

0

これは、を使用しているためです$_POST['ordered'][0]。インデックスは動的である必要があります。コードを次のように変更します。

foreach ($files as $key => $file) {

        if (!empty($file['name'])) {

            $image = $upload->upload_image($file);
            $thumb = $upload->upload_image($file);

            $values = array(
                'product_id'    => $product_id, 
                'image'         => $image,
                'thumbnail'     => $thumb,
                'ordered' =>  $_POST['ordered'][$key]
            );  

            $db->insert(config_item('cart', 'table_product_images'), $values);

        }

    }
于 2012-09-22T22:59:52.020 に答える