Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) jQuery Как правильно сделать копию загрузки изображений из доп поля 11 версии?

Как правильно сделать копию загрузки изображений из доп поля 11 версии?


     17.09.2016    jQuery, Общие вопросы по PHP    384

вопрос
Обратился к человеку на фл.ру по рекомендации, советовали как хорошего специалиста, заказал до безобразия простой модуль, по спец не доделав до конца работу пропал. Ниже пропишу код и что не получается у меня доделать, буду признателен за любую помощь.
Это в addnews.php
<div class="tab-pane" id="tabacters" >
                        <div class="row box-section">
                            <script>
                             $(document).ready(function(){
                                function makeid()
                                {
                                    var text = "";
                                    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

                                    for( var i=0; i < 8; i++ )
                                        text += possible.charAt(Math.floor(Math.random() * possible.length));

                                    return text;
                                }

                                $("#add_new_acter").on("click", function (){

                                    var code = makeid();

                                    var html_code = '<div class="actors_input">'+
                                        '<table class="table_acters">'+
                                                '<tbody>'+
                                                    '<tr>'+
                                                        '<td><input type="text" name="table_acters['+code+'][name]" class="input_acters"></td>'+
                                                        '<td><input type="text" name="table_acters['+code+'][name_second]" class="input_acters"></td>'+
                                                        '<td><div id="file-actors_'+code+'"></div><input type="text" name="table_acters['+code+'][image_link]" class="input_acters" id="xf_'+code+'"></td>'+
                                                        '<td style="width: 10%;text-align: center;"><a href="#inputs_1" class="delete">Убрать</a></td>'+
                                                    '</tr>'+
                                                '</tbody>'+
                                            '</table></div>';

                                    $(".form_inputs_forms").append(html_code);
                                    return false;
                                });

                                $(document).on('click', '.delete', function(){
                                    $(this).closest(".actors_input").remove();
                                    return false;
                                });
                                
                             });
                            </script>    
                            <div class="header_actors">Название</div>
                            <div class="form_inputs">
                            <table class="table_acters">
                                <thead>                                
                                    <td>Название</td>
                                    <td>Название</td>
                                    <td>Картинка</td>
                                    <td style="width: 10%;text-align: center;">Действие</td>
                                </thead>
                            </table>
                                <div class="form_inputs_forms">
                                    <div class="actors_input">
                                        <table class="table_acters">
                                            <tbody>
                                                <tr>                                            
                                                    <td><input type="text" name="table_acters[0][name]" class="input_acters"></td>
                                                    <td><input type="text" name="table_acters[0][name_second]" class="input_acters"></td>
                                                    <td><div id="file-actors_0"></div><input type="hidden" name="table_acters[0][image_link]" class="input_acters" id="xf_0" value="" /></td>
                                                    <td style="width: 10%;text-align: center;"><a href="#" class="delete">Удалить</a></td>                        
                                                </tr>
                                            </tbody>
                                        </table>                                        
                                    </div>                                
                                </div>
                                <br>
                                <button class="btn btn-gray pull-left" id="add_new_acter">Добавить</button>
                            </div>
                            
                        </div>
                     </div>
                    
Должно было получится как то так:

Как правильно сделать копию загрузки изображений из доп поля 11 версии?

Как правильно сделать копию загрузки изображений из доп поля 11 версии?

Но загрузку фото он не доделал, вместо нее третий ипут. Я попробовал выдернуть загрузку фото в 11 версии, та что в новых доп полях. Получился вот такой код

jQuery(document).ready(function ($) {
    var uploader = new qq.FileUploader({
        element: document.getElementById('file-actors_'+0),
        action: '{$root}engine/ajax/upload.php',
        maxConnections: 1,
        multiple: false,
        encoding: 'multipart',
        sizeLimit: 0,
        allowedExtensions: ['gif', 'jpg', 'png'],
        params: {"PHPSESSID" : "{$sess_id}", "subaction" : "upload", "news_id" : "{$news_id}", "area" : "actors", "author" : "{$author}"},
        template: '<div class="qq-uploader">' +
                '<div id="uploadedfile_'+0+'">{$up_image}</div><div class="qq-upload-drop-area"><span>{$lang['media_upload_st5']}</span></div>' +
                '<div class="qq-upload-button btn btn-green" style="width: auto;">{$lang['xfield_xfim']}</div>' +
                '<ul class="qq-upload-list" style="display:none;"></ul>' +
             '</div>',
        onsubmit: function(id, fileName) {

                    $('<div id="uploadfile-'+id+'" class="file-box"><span class="qq-upload-file-status">{$lang['media_upload_st6']}</span><span class="qq-upload-file">&nbsp;'+fileName+'</span><span class="qq-status"><span class="qq-upload-spinner"></span><span class="qq-upload-size"></span></span><div class="progress "><div class="progress-bar progress-blue" style="width: 0%"><span>0%</span></div></div></div>').appendTo('#file-actors_'+0);

        },
        onProgress: function(id, fileName, loaded, total){
                    $('#uploadfile-'+id+' .qq-upload-size').text(uploader._formatSize(loaded)+' {$lang['media_upload_st8']} '+uploader._formatSize(total));
                    var proc = Math.round(loaded / total * 100);
                    $('#uploadfile-'+id+' .progress-bar').width( 8 + '%');
                    $('#uploadfile-'+id+' .qq-upload-spinner').css( "display", "inline-block");

        },
        onComplete: function(id, fileName, response){

                        if ( response.success ) {
                            var returnbox = response.returnbox;
                            var returnval = response.xfvalue;

                            returnbox = returnbox.replace(/&lt;/g, "<");
                            returnbox = returnbox.replace(/&gt;/g, ">");
                            returnbox = returnbox.replace(/&amp;/g, "&");

                            $('#uploadfile-'+id+' .qq-status').html('{$lang['media_upload_st9']}');
                            $('#uploadedfile_'+0).html( returnbox );
                            $('#xf_'+0).val(returnval);


                            setTimeout(function() {
                                $('#uploadfile-'+id).fadeOut('slow', function() { $(this).remove(); });
                            }, 1000);

                        } else {
                            $('#uploadfile-'+id+' .qq-status').html('{$lang['media_upload_st10']}');

                            if( response.error ) $('#uploadfile-'+id+' .qq-status').append( '<br /><font color="red">' + response.error + '</font>' );

                            setTimeout(function() {
                                $('#uploadfile-'+id).fadeOut('slow');
                            }, 4000);
                        }
        },
        messages: {
            typeError: "{$lang['media_upload_st11']}",
            sizeError: "{$lang['media_upload_st12']}",
            emptyError: "{$lang['media_upload_st13']}"
        },
        debug: false
    });
});

                            
    function xfimagedelete( xfname, xfvalue )
    {
        DLEconfirm( '{$lang['image_delete']}', '{$lang['p_info']}', function () {
        
            ShowLoading('');
    
            $.post('engine/ajax/upload.php', { subaction: 'deluploads', user_hash: '{$dle_login_hash}', 'images[]' : xfvalue }, function(data){
    
                HideLoading('');
                
                $('#uploadedfile_'+0).html('');
                $('#xf_'+0).val('');
            });
            
        } );
        
        return false;

    };

    function xffiledelete( xfname, xfvalue )
    {
        DLEconfirm( '{$lang['file_delete']}', '{$lang['p_info']}', function () {
        
            ShowLoading('');
    
            $.post('engine/ajax/upload.php', { subaction: 'deluploads', user_hash: '{$dle_login_hash}', 'files[]' : xfvalue }, function(data){
    
                HideLoading('');
                
                $('#uploadedfile_'+0).html('');
                $('#xf_'+0).val('');
                $('#xf_'+0).hide('');
            });
            
        } );
        
        return false;

    };    
Когда его добавляю в addnews.php то у этого инпута
<div id="file-actors_0"></div><input type="hidden" name="table_acters[0][image_link]" class="input_acters" id="xf_0" value="" />
появляется загрузчик, все загружает и удаляет даже. Но вот как добавить загрузчик к другим добавленным инпутам у меня не получается, то есть как то нужно чтобы при нажатии на
<button class="btn btn-gray pull-left" id="add_new_acter">Добавить</button>
добавлялся не только
<div id="file-actors_'+code+'"></div><input type="text" name="table_acters['+code+'][image_link]" class="input_acters" id="xf_'+code+'">
а и javascript с таким же уникальным +code+
element: document.getElementById('file-actors_''+code+'),
.
Спасибо за внимание. Буду признателен за любую помощь.

Ответа пока нет


Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы